Добрый вечер, уважаемые форумчане. Весь день ищу решение своей проблемы и решил только на половину.. со второй половиной нужна немного помощь.
Есть макрос.. Он копирует с разных листов определенные ячейки и вставляет их в нужный мне лист (YD_Search) - в макросе видно Ячейки X12, Y12 ,Z12 (это рядом стоящие ячейки.. заранее пишу, что нужно будет добавлять еще ячейки не рядом стоящие)
Далее макрос протягивает их до последней не заполненной строки. ну работает как надо... НО если делать еще раз протяжку.. то он уже не срабатывает и выдает ошибку. Решение этой ошибки нашел.. но его уже не могу адаптировать под свой макрос.. так как в нем я не могу указать ни диапазон протягивания ни разделить его так, как в моем примере (Пример 1).. что бы на каждую отдельную ячейку указать протяжку.
Пример 1 (тут ошибку выдает в последних строках которые отвечают за протяжку)
Код |
---|
Sub CopyAdressBS_BS_ZagolovokBS_toYD_Generator_metok()
'
' CopyAdressBS_BS_ZagolovokBS_toYD_Generator_metok Ìàêðîñ
' êîïèðóåò ññûëêó áñ, áñ, çàãîëîâîê áñ èç Ãåíåðàòîðà ìåòîê â øàáëîí ßíäåêñà YD_Search
'
Application.ScreenUpdating = False
'
Sheets("Ãåíåðàòîð ìåòîê").Select
Range("A28").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("YD_Search").Select
Range("Y12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Íàñòðîéêà ÐÊ").Select
Range("A17").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("YD_Search").Select
Range("X12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Íàñòðîéêà ÐÊ").Select
Range("A21").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("YD_Search").Select
Range("Z12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Ïðîòÿãèâàåò îïðåäåëåííûå ñòîëáöû äî ïîñëåäíåé çàïîëíåííîé ñòðîêè
Range("Y" & Cells(Rows.Count, 25).End(xlUp).Row).AutoFill Destination:=Range("Y12:Y" & _
Cells(Rows.Count, 1).End(xlUp).Row), Type:=xlFillDefault
Range("X" & Cells(Rows.Count, 24).End(xlUp).Row).AutoFill Destination:=Range("X12:X" & _
Cells(Rows.Count, 1).End(xlUp).Row), Type:=xlFillDefault
Range("Z" & Cells(Rows.Count, 26).End(xlUp).Row).AutoFill Destination:=Range("Z12:Z" & _
Cells(Rows.Count, 1).End(xlUp).Row), Type:=xlFillDefault
Application.ScreenUpdating = False
End Sub
|
Пример 2 (это решение ошибки но его не могу адаптировать под свой макрос) либо я что то не правильно делаю
Код |
---|
Sub Макрос2()
Dim a, s
a = Range("e" & Cells(Rows.Count, 5).End(xlUp).Row).Address
s = a & ":" & Range("e" & Cells(Rows.Count, 1).End(xlUp).Row).Address
On Error Resume Next
Range(a).AutoFill Destination:=Range(s), Type:=xlFillDefault
End Sub
|
И вопрос номер 2: Загвоздка в обоих примерах будет тем.. что в тексте могут быть в конце числа.. а при протяжке как мы знаем.. числа будут протягиватся .. а это мне как раз таки не нужно..*(По этому поводу вроде тоже придумал решение.. но мне кажется оно туповатое и вряд ли сработает) поэтому прошу помощи и в этом вопросе как это лучше сделать можно?
Заранее благодарю за помощь всех =))
Пример протяжки с первого макроса. (текст в ячейках должен одинаковым быть.. тоесть протянутся как и в ячейке с который он начинает протяжку)