Зациклить этот макрос Excel? - PullRequest
3 голосов
/ 01 июля 2010

У меня есть этот код ниже, и в основном я хочу, чтобы он мог делать целый диапазон ячеек от R16 до R200 и Range("G16").Select до G200.

т.е. когда он меняется на R17, то G16 становится 17, когда R18, затем G18 и т. д.

Таким образом, вся функция изменяется с R2 на R3 и G2 на G3, запускается снова и изменяется R3 на R4, G3 на G4 и т. Д.

Sub Search()

Range("H2").Select
ActiveCell.FormulaR1C1 = "=IF(ISNUMBER(SEARCH(R16C6,RC[4])),RC[2],"""")" ' Edit RXX value
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:H385")
Range("H2:H385").Select
Range("G16").Select ' Edit GXX value
ActiveCell.FormulaR1C1 = "=SpecialConcatenate(C[1])"
Range("G11").Select
Application.Run "Test.xlsm!CopyPaste"
Range("H2").Select

End Sub

1 Ответ

2 голосов
/ 01 июля 2010
Sub Search2()

    With Range("h2:h385")
        .FormulaR1C1 = "=IF(ISNUMBER(SEARCH(R[14]C6,RC[4])),RC[2],"""")"
    End With

    Range("G16").FormulaR1C1 = "=SpecialConcatenate(C[1])"
    Application.Run "Test.xlsm!CopyPaste"

End Sub

Если вы поставите число R в скобки, оно будет относиться к любой ячейке, в которой вы находитесь. Поэтому R [14] будет указывать на строку 16, когда вы находитесь в строке 2, и на строку 214, когда находимся в ряду 200.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...