Кладу голову на плаху. До сих пор не освоил даже азы VBA, по этому вновь вынужден обращаться к вам за помощью) Суть задачи: На итоговом листе есть список компаний и их ИНН, а так же несколько столбцов по которым необходимо делать проверку. В файле есть n листов, эти листы называются аналогично столбцам итогового листа. На этих листа, всегда - в столбце D, содержится ключ (ИНН) по которому необходимо осуществить проверку и в случае наличия совпадения поставить цифру на итоговый лист.
По сути, макрос должен работать как функция СЧЕТЕСЛИ, только сам проверять названия столбцов и делать поиск на листах с аналогичным названием.
Заранее большое всем спасибо.
Уважаемые друзья, всем здравствуйте!
Кладу голову на плаху. До сих пор не освоил даже азы VBA, по этому вновь вынужден обращаться к вам за помощью) Суть задачи: На итоговом листе есть список компаний и их ИНН, а так же несколько столбцов по которым необходимо делать проверку. В файле есть n листов, эти листы называются аналогично столбцам итогового листа. На этих листа, всегда - в столбце D, содержится ключ (ИНН) по которому необходимо осуществить проверку и в случае наличия совпадения поставить цифру на итоговый лист.
По сути, макрос должен работать как функция СЧЕТЕСЛИ, только сам проверять названия столбцов и делать поиск на листах с аналогичным названием.
gling Добрый день! Формулой я уже реализовал. Но на больших массивах файл дико зависает, да еще и обновляться начинает, когда не надо (постоянно переключать флажок автообновления не хочется). Мне кажется макрос более адекватно будет работать. Кнопку ткнул - он один раз отработал, вставил значения и все, можно дальше спокойно работать с файлом.
gling Добрый день! Формулой я уже реализовал. Но на больших массивах файл дико зависает, да еще и обновляться начинает, когда не надо (постоянно переключать флажок автообновления не хочется). Мне кажется макрос более адекватно будет работать. Кнопку ткнул - он один раз отработал, вставил значения и все, можно дальше спокойно работать с файлом.ArkaIIIa
Sub Svod() Dim i As Long, j As Long, Rw As Long, Cl As Long Dim a As String Application.ScreenUpdating = False With Sheets("Свод") Rw = .Cells(Rows.Count, 1).End(xlUp).Row Cl = .Cells(1, Columns.Count).End(xlToLeft).Column For i = 3 To Rw For j = 2 To Cl a = .Cells(1, j) .Cells(i, j) = Application.CountIf(Sheets(a).Range("D:D"), .Cells(i, 1).Value) Next Next End With Application.ScreenUpdating = True End Sub
Sub Svod() Dim i As Long, j As Long, Rw As Long, Cl As Long Dim a As String Application.ScreenUpdating = False With Sheets("Свод") Rw = .Cells(Rows.Count, 1).End(xlUp).Row Cl = .Cells(1, Columns.Count).End(xlToLeft).Column For i = 3 To Rw For j = 2 To Cl a = .Cells(1, j) .Cells(i, j) = Application.CountIf(Sheets(a).Range("D:D"), .Cells(i, 1).Value) Next Next End With Application.ScreenUpdating = True End Sub