С рабочих листов необходимо перенести данные на лист "Кубок" со вставкой связи. (колонки R-AK) Столкнулся с проблемой при выполнении макроса. В автоматическом режиме данные не переносятся. В ручном режиме по F8 - отрабатывает без ошибок
Буду благодарен за подсказку в решении проблемы.
Добрый вечер.
С рабочих листов необходимо перенести данные на лист "Кубок" со вставкой связи. (колонки R-AK) Столкнулся с проблемой при выполнении макроса. В автоматическом режиме данные не переносятся. В ручном режиме по F8 - отрабатывает без ошибок
Буду благодарен за подсказку в решении проблемы. berya
Sub Cub() Dim shRun, arr, k, lk Application.ScreenUpdating = False On Error Resume Next Range("Кубок").ClearContents Sheets("Кубок").ListObjects("Кубок").Unlist iList = Array("Ринг_сх", "Ринг_С_сх", "ТАТАМІ_1_сх", "ТАТАМІ_2_сх") lk = 1 + Sheets("Кубок").Range("A65535").End(xlUp).Row For Each Sh In iList Set shRun = Worksheets(Sh) LR = shRun.[R10000].End(xlUp).Row For i = 2 To LR d = shRun.Cells(i, 18).Address If IsEmpty(shRun.Cells(i, 18)) = False Then For k = 1 To 20 arr = "=" & shRun.Name & "!" & shRun.Range(d).Offset(0, k - 1).Address Sheets("Кубок").Cells(lk, k).Value = arr Next k lk = lk + 1 End If 'Worksheets(Sh).Select Next i Next Sh 'Worksheets("Кубок").Select x = Worksheets("Кубок").Range("A65535").End(xlUp).Row Worksheets("Кубок").ListObjects.Add(xlSrcRange, Range("$A$1" & ":$T" & x), xlYes).Name = "Кубок" Worksheets("Кубок").Range("Кубок[#All]").Select Worksheets("Кубок").ListObjects("Кубок").TableStyle = "TableStyleLight9" Application.ScreenUpdating = True MsgBox "работа завершенна" End Sub
[/vba]
у меня вот так работает:
[vba]
Код
Sub Cub() Dim shRun, arr, k, lk Application.ScreenUpdating = False On Error Resume Next Range("Кубок").ClearContents Sheets("Кубок").ListObjects("Кубок").Unlist iList = Array("Ринг_сх", "Ринг_С_сх", "ТАТАМІ_1_сх", "ТАТАМІ_2_сх") lk = 1 + Sheets("Кубок").Range("A65535").End(xlUp).Row For Each Sh In iList Set shRun = Worksheets(Sh) LR = shRun.[R10000].End(xlUp).Row For i = 2 To LR d = shRun.Cells(i, 18).Address If IsEmpty(shRun.Cells(i, 18)) = False Then For k = 1 To 20 arr = "=" & shRun.Name & "!" & shRun.Range(d).Offset(0, k - 1).Address Sheets("Кубок").Cells(lk, k).Value = arr Next k lk = lk + 1 End If 'Worksheets(Sh).Select Next i Next Sh 'Worksheets("Кубок").Select x = Worksheets("Кубок").Range("A65535").End(xlUp).Row Worksheets("Кубок").ListObjects.Add(xlSrcRange, Range("$A$1" & ":$T" & x), xlYes).Name = "Кубок" Worksheets("Кубок").Range("Кубок[#All]").Select Worksheets("Кубок").ListObjects("Кубок").TableStyle = "TableStyleLight9" Application.ScreenUpdating = True MsgBox "работа завершенна" End Sub
Добрый день. K-SerJC - спасибо, работает. Вопрос по абсолютным ссылкам - их изначально можно заменить на относительные? - могут вставляться или удаляться исходные данные? И что означает "!" в shRun.Name & "!" & ? Спасибо за ответ и внимание
Добрый день. K-SerJC - спасибо, работает. Вопрос по абсолютным ссылкам - их изначально можно заменить на относительные? - могут вставляться или удаляться исходные данные? И что означает "!" в shRun.Name & "!" & ? Спасибо за ответ и вниманиеberya
K-SerJC, Почему не стыкуется - как решить проблему глобально - ясно, а на ходу - думал можно прописать без дополнительного действия. Большое Спасибо за ответы.
K-SerJC, Почему не стыкуется - как решить проблему глобально - ясно, а на ходу - думал можно прописать без дополнительного действия. Большое Спасибо за ответы.berya