Anis625
Дата: Вторник, 16.10.2018, 14:30 |
Сообщение № 1
Группа: Заблокированные
Ранг: Ветеран
Сообщений: 674
Репутация:
31
±
Замечаний:
20% ±
Excel 2013
Добрый день. Искал в просторах интернета в разных видах - не нашел то, что нужно. Работаю с закрытыми файлами (около 100). Поэтому ДВССЫЛ не подходит. Необходимо извлечь информацию из этих файлов по условию. Попробовал в доп.столбце добавить путь к диапазону. Обхитрить Excel не получается. Похожий пост создали ниже. Может там тоже решение найдется. Можно без макросов решить задачку?
Добрый день. Искал в просторах интернета в разных видах - не нашел то, что нужно. Работаю с закрытыми файлами (около 100). Поэтому ДВССЫЛ не подходит. Необходимо извлечь информацию из этих файлов по условию. Попробовал в доп.столбце добавить путь к диапазону. Обхитрить Excel не получается. Похожий пост создали ниже. Может там тоже решение найдется. Можно без макросов решить задачку? Anis625
Сообщение отредактировал Anis625 - Вторник, 16.10.2018, 14:31
Ответить
Сообщение Добрый день. Искал в просторах интернета в разных видах - не нашел то, что нужно. Работаю с закрытыми файлами (около 100). Поэтому ДВССЫЛ не подходит. Необходимо извлечь информацию из этих файлов по условию. Попробовал в доп.столбце добавить путь к диапазону. Обхитрить Excel не получается. Похожий пост создали ниже. Может там тоже решение найдется. Можно без макросов решить задачку? Автор - Anis625 Дата добавления - 16.10.2018 в 14:30
_Boroda_
Дата: Вторник, 16.10.2018, 15:43 |
Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация:
6478
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Таким макросом можно в формулах ссылки поменять [vba]Код
Sub tt() r00_ = 5 'нач строка c0_ = 2 'столбец со ссылками c1_ = 12 'столбец с формулами r0_ = Cells(Rows.Count, c0_).End(3).Row r1_ = Cells(Rows.Count, c1_).End(3).Row nc_ = 2 'кол-во столбцов с формулами r_ = WorksheetFunction.Max(r0_, r1_) ar0 = Cells(r00_, c0_).Resize(r_ - r00_ + 1) ar1 = Cells(r00_, c1_).Resize(r_ - r00_ + 1, nc_).Formula Application.DisplayAlerts = 0 Application.Calculation = 3 For i = LBound(ar1) To UBound(ar1) For j = 1 To nc_ If Left(ar1(i, j), 9) = "=VLOOKUP(" Then s0_ = InStr(ar1(i, j), ",") s1_ = InStr(s0_ + 1, ar1(i, j), ",") ar1(i, j) = Left(ar1(i, j), s0_) & "'" & ar0(i, 1) & Mid(ar1(i, j), s1_) ' Cells(r00_ + i - 1, c1_ + j - 1) = jjj End If Next j Next i Application.DisplayAlerts = 0 Application.Calculation = 3 Cells(r00_, c1_).Resize(r_ - r00_ + 1, nc_).Formula = ar1 Application.Calculation = 1 Application.DisplayAlerts = 1 End Sub
[/vba]
Таким макросом можно в формулах ссылки поменять [vba]Код
Sub tt() r00_ = 5 'нач строка c0_ = 2 'столбец со ссылками c1_ = 12 'столбец с формулами r0_ = Cells(Rows.Count, c0_).End(3).Row r1_ = Cells(Rows.Count, c1_).End(3).Row nc_ = 2 'кол-во столбцов с формулами r_ = WorksheetFunction.Max(r0_, r1_) ar0 = Cells(r00_, c0_).Resize(r_ - r00_ + 1) ar1 = Cells(r00_, c1_).Resize(r_ - r00_ + 1, nc_).Formula Application.DisplayAlerts = 0 Application.Calculation = 3 For i = LBound(ar1) To UBound(ar1) For j = 1 To nc_ If Left(ar1(i, j), 9) = "=VLOOKUP(" Then s0_ = InStr(ar1(i, j), ",") s1_ = InStr(s0_ + 1, ar1(i, j), ",") ar1(i, j) = Left(ar1(i, j), s0_) & "'" & ar0(i, 1) & Mid(ar1(i, j), s1_) ' Cells(r00_ + i - 1, c1_ + j - 1) = jjj End If Next j Next i Application.DisplayAlerts = 0 Application.Calculation = 3 Cells(r00_, c1_).Resize(r_ - r00_ + 1, nc_).Formula = ar1 Application.Calculation = 1 Application.DisplayAlerts = 1 End Sub
[/vba] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Таким макросом можно в формулах ссылки поменять [vba]Код
Sub tt() r00_ = 5 'нач строка c0_ = 2 'столбец со ссылками c1_ = 12 'столбец с формулами r0_ = Cells(Rows.Count, c0_).End(3).Row r1_ = Cells(Rows.Count, c1_).End(3).Row nc_ = 2 'кол-во столбцов с формулами r_ = WorksheetFunction.Max(r0_, r1_) ar0 = Cells(r00_, c0_).Resize(r_ - r00_ + 1) ar1 = Cells(r00_, c1_).Resize(r_ - r00_ + 1, nc_).Formula Application.DisplayAlerts = 0 Application.Calculation = 3 For i = LBound(ar1) To UBound(ar1) For j = 1 To nc_ If Left(ar1(i, j), 9) = "=VLOOKUP(" Then s0_ = InStr(ar1(i, j), ",") s1_ = InStr(s0_ + 1, ar1(i, j), ",") ar1(i, j) = Left(ar1(i, j), s0_) & "'" & ar0(i, 1) & Mid(ar1(i, j), s1_) ' Cells(r00_ + i - 1, c1_ + j - 1) = jjj End If Next j Next i Application.DisplayAlerts = 0 Application.Calculation = 3 Cells(r00_, c1_).Resize(r_ - r00_ + 1, nc_).Formula = ar1 Application.Calculation = 1 Application.DisplayAlerts = 1 End Sub
[/vba] Автор - _Boroda_ Дата добавления - 16.10.2018 в 15:43
Anis625
Дата: Вторник, 16.10.2018, 15:51 |
Сообщение № 3
Группа: Заблокированные
Ранг: Ветеран
Сообщений: 674
Репутация:
31
±
Замечаний:
20% ±
Excel 2013
_Boroda_, Макрос отлично сработал. Я его в копилку к себе сохраню. Спасибо Вам большое. Нюанс хотел уточнить: [vba]Код
nc_ = 2 'кол-во столбцов с формулами
[/vba] Это количество смежных столбцов которые нужно поменять?
_Boroda_, Макрос отлично сработал. Я его в копилку к себе сохраню. Спасибо Вам большое. Нюанс хотел уточнить: [vba]Код
nc_ = 2 'кол-во столбцов с формулами
[/vba] Это количество смежных столбцов которые нужно поменять? Anis625
Ответить
Сообщение _Boroda_, Макрос отлично сработал. Я его в копилку к себе сохраню. Спасибо Вам большое. Нюанс хотел уточнить: [vba]Код
nc_ = 2 'кол-во столбцов с формулами
[/vba] Это количество смежных столбцов которые нужно поменять? Автор - Anis625 Дата добавления - 16.10.2018 в 15:51
_Boroda_
Дата: Вторник, 16.10.2018, 16:24 |
Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация:
6478
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Да
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Да Автор - _Boroda_ Дата добавления - 16.10.2018 в 16:24