превратить относительные ссылки в абсолютные большая формула
Flatcher
Дата: Пятница, 22.12.2017, 10:48 |
Сообщение № 1
Группа: Проверенные
Ранг: Участник
Сообщений: 94
Репутация:
1
±
Замечаний:
0% ±
Excel 2010
подскажите пожалуйста как макросом преобразовать ссылки в формуле типа: Код
=-СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;9):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;9); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы Банки")+СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;10):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;10); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы Банки")+ -СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;9):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;9); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы")+СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;10):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;10); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы")
???? пробовал [vba]Код
ConvertFormula(cell.Formula, xlA1, xlA1, xlAbsolute)
[/vba] но она по ходу не берет большую формулу
подскажите пожалуйста как макросом преобразовать ссылки в формуле типа: Код
=-СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;9):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;9); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы Банки")+СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;10):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;10); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы Банки")+ -СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;9):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;9); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы")+СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;10):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;10); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы")
???? пробовал [vba]Код
ConvertFormula(cell.Formula, xlA1, xlA1, xlAbsolute)
[/vba] но она по ходу не берет большую формулу Flatcher
Сообщение отредактировал Flatcher - Пятница, 22.12.2017, 11:13
Ответить
Сообщение подскажите пожалуйста как макросом преобразовать ссылки в формуле типа: Код
=-СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;9):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;9); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы Банки")+СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;10):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;10); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.01";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.02";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы Банки")+ -СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;9):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;9); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы")+СУММЕСЛИМН(СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;10):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;10); СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.03";ОСВ_10!B6:B6000;0);1);0;1):СМЕЩ(ИНДЕКС(ОСВ_10!B6:B6000;ПОИСКПОЗ("66.04";ОСВ_10!B6:B6000;0);1);-1;1); "+Займы")
???? пробовал [vba]Код
ConvertFormula(cell.Formula, xlA1, xlA1, xlAbsolute)
[/vba] но она по ходу не берет большую формулу Автор - Flatcher Дата добавления - 22.12.2017 в 10:48
китин
Дата: Пятница, 22.12.2017, 10:58 |
Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7030
Репутация:
1079
±
Замечаний:
0% ±
Excel 2007;2010;2016
72 сообщения, а правила не прочитаны, пичалька
72 сообщения, а правила не прочитаны, пичалька китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение 72 сообщения, а правила не прочитаны, пичалька Автор - китин Дата добавления - 22.12.2017 в 10:58
Flatcher
Дата: Пятница, 22.12.2017, 11:06 |
Сообщение № 3
Группа: Проверенные
Ранг: Участник
Сообщений: 94
Репутация:
1
±
Замечаний:
0% ±
Excel 2010
китин, ну тыкните носом, что не так! файл я думаю в данном случае не обязателен
китин, ну тыкните носом, что не так! файл я думаю в данном случае не обязателен Flatcher
Ответить
Сообщение китин, ну тыкните носом, что не так! файл я думаю в данном случае не обязателен Автор - Flatcher Дата добавления - 22.12.2017 в 11:06
Pelena
Дата: Пятница, 22.12.2017, 11:18 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19418
Репутация:
4561
±
Замечаний:
±
Excel 365 & Mac Excel
Найти B6:B6000 заменить на $B$6:$B$6000 не вариант? Область поиска - формулы
Найти B6:B6000 заменить на $B$6:$B$6000 не вариант? Область поиска - формулы Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Найти B6:B6000 заменить на $B$6:$B$6000 не вариант? Область поиска - формулы Автор - Pelena Дата добавления - 22.12.2017 в 11:18
китин
Дата: Пятница, 22.12.2017, 11:19 |
Сообщение № 5
Группа: Модераторы
Ранг: Экселист
Сообщений: 7030
Репутация:
1079
±
Замечаний:
0% ±
Excel 2007;2010;2016
формула у вас не обтэжена была. по сути: а Найти Найти Все Заменить Заменить все разве не прокатит? и макросов не надоть
формула у вас не обтэжена была. по сути: а Найти Найти Все Заменить Заменить все разве не прокатит? и макросов не надоть китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение формула у вас не обтэжена была. по сути: а Найти Найти Все Заменить Заменить все разве не прокатит? и макросов не надоть Автор - китин Дата добавления - 22.12.2017 в 11:19
Flatcher
Дата: Пятница, 22.12.2017, 11:21 |
Сообщение № 6
Группа: Проверенные
Ранг: Участник
Сообщений: 94
Репутация:
1
±
Замечаний:
0% ±
Excel 2010
Pelena, не во всех формулах такой адрес. Так то да можно бы было сделать
Pelena, не во всех формулах такой адрес. Так то да можно бы было сделать Flatcher
Ответить
Сообщение Pelena, не во всех формулах такой адрес. Так то да можно бы было сделать Автор - Flatcher Дата добавления - 22.12.2017 в 11:21
Flatcher
Дата: Пятница, 22.12.2017, 11:26 |
Сообщение № 7
Группа: Проверенные
Ранг: Участник
Сообщений: 94
Репутация:
1
±
Замечаний:
0% ±
Excel 2010
китин, тэги поправил) спасибо за замечание. С найти/заменить не выйдет так как есть и другие адреса. В принципе так сделать минут 15 займет но хотелось бы домучить макрос
китин, тэги поправил) спасибо за замечание. С найти/заменить не выйдет так как есть и другие адреса. В принципе так сделать минут 15 займет но хотелось бы домучить макрос Flatcher
Ответить
Сообщение китин, тэги поправил) спасибо за замечание. С найти/заменить не выйдет так как есть и другие адреса. В принципе так сделать минут 15 займет но хотелось бы домучить макрос Автор - Flatcher Дата добавления - 22.12.2017 в 11:26
Pelena
Дата: Пятница, 22.12.2017, 11:52 |
Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19418
Репутация:
4561
±
Замечаний:
±
Excel 365 & Mac Excel
не во всех формулах такой адрес
Мы же Вашего файла не видим. Можно только с именем столбца: Найти B -- Заменить на $B$ хотелось бы домучить макрос
А Replace тоже имеет ограничение по длине текста?
не во всех формулах такой адрес
Мы же Вашего файла не видим. Можно только с именем столбца: Найти B -- Заменить на $B$ хотелось бы домучить макрос
А Replace тоже имеет ограничение по длине текста?Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение не во всех формулах такой адрес
Мы же Вашего файла не видим. Можно только с именем столбца: Найти B -- Заменить на $B$ хотелось бы домучить макрос
А Replace тоже имеет ограничение по длине текста?Автор - Pelena Дата добавления - 22.12.2017 в 11:52
bmv98rus
Дата: Пятница, 22.12.2017, 13:00 |
Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4128
Репутация:
770
±
Замечаний:
0% ±
Excel 2013/2016
Flatcher , вы не хотите просто проименовать область/ти (ОСВ_10!B6:B6000) а потом применить это имя . (alt+MMA)?
Flatcher , вы не хотите просто проименовать область/ти (ОСВ_10!B6:B6000) а потом применить это имя . (alt+MMA)?bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение Flatcher , вы не хотите просто проименовать область/ти (ОСВ_10!B6:B6000) а потом применить это имя . (alt+MMA)?Автор - bmv98rus Дата добавления - 22.12.2017 в 13:00
InExSu
Дата: Воскресенье, 24.12.2017, 02:34 |
Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация:
96
±
Замечаний:
0% ±
Excel 2010, 365
Может так:
[vba]
Код
Sub СсылкиОтносительныеВАбсолютные_InExSu() Dim s As String, Ns As String, iCh As String, USD As Boolean s = cells(1, 1).FormulaLocal Dim i As Long For i = 1 To Len(s) iCh = Mid(s, i, 1) If USD Then If IsNumeric(iCh) Then Ns = Ns & "$" & iCh USD = False Else Ns = Ns & iCh End If End If If Not USD Then If iCh = "!" Then Ns = Ns & iCh & "$" USD = True Else If iCh = ":" Then If IsNumeric(Mid(s, i - 1, 1)) Then Ns = Ns & iCh & "$" USD = True Else Ns = Ns & iCh End If Else Ns = Ns & iCh End If End If End If Next i Debug.Print Ns 'Copy2ClipBoard (Ns) cells(1, 2).FormulaLocal = Ns 'Stop End Sub
[/vba]
Может так:
[vba]
Код
Sub СсылкиОтносительныеВАбсолютные_InExSu() Dim s As String, Ns As String, iCh As String, USD As Boolean s = cells(1, 1).FormulaLocal Dim i As Long For i = 1 To Len(s) iCh = Mid(s, i, 1) If USD Then If IsNumeric(iCh) Then Ns = Ns & "$" & iCh USD = False Else Ns = Ns & iCh End If End If If Not USD Then If iCh = "!" Then Ns = Ns & iCh & "$" USD = True Else If iCh = ":" Then If IsNumeric(Mid(s, i - 1, 1)) Then Ns = Ns & iCh & "$" USD = True Else Ns = Ns & iCh End If Else Ns = Ns & iCh End If End If End If Next i Debug.Print Ns 'Copy2ClipBoard (Ns) cells(1, 2).FormulaLocal = Ns 'Stop End Sub
[/vba]
InExSu
Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
Ответить
Сообщение Может так:
[vba]
Код
Sub СсылкиОтносительныеВАбсолютные_InExSu() Dim s As String, Ns As String, iCh As String, USD As Boolean s = cells(1, 1).FormulaLocal Dim i As Long For i = 1 To Len(s) iCh = Mid(s, i, 1) If USD Then If IsNumeric(iCh) Then Ns = Ns & "$" & iCh USD = False Else Ns = Ns & iCh End If End If If Not USD Then If iCh = "!" Then Ns = Ns & iCh & "$" USD = True Else If iCh = ":" Then If IsNumeric(Mid(s, i - 1, 1)) Then Ns = Ns & iCh & "$" USD = True Else Ns = Ns & iCh End If Else Ns = Ns & iCh End If End If End If Next i Debug.Print Ns 'Copy2ClipBoard (Ns) cells(1, 2).FormulaLocal = Ns 'Stop End Sub
[/vba]
Автор - InExSu Дата добавления - 24.12.2017 в 02:34