Код работает, но не заполняет указанный диапазон - PullRequest
0 голосов
/ 25 октября 2019

Код работает, но останавливается, когда копировать vlookup во все ячейки (от A1 до A5). Может кто-нибудь помочь, пожалуйста? Большое вам спасибо

  Sheets("RAW DATA FILE").Range("A1").Select
    ActiveCell.FormulaR1C1 = _
        "=IFERROR(IF(RC2=""customer account"",INDEX('FEED DATA'!C[3],match('RAW DATA FILE'!R[1]C2,'FEED DATA'!C[5],0)),""""),"""")"
    Range("A1").Select
    Selection.AutoFill Destination:=Range("A1:A5"), Type:=xlFillDefault
    Range("A1:A5").Select
    Range("A1").Select
    ActiveCell.FormulaR1C1 = _
        "=IFERROR(IF(RC2=""customer account"",INDEX('FEED DATA'!C4,match('RAW DATA FILE'!R[1]C2,'FEED DATA'!C6,0)),""""),"""")"
    Range("A1").Select

1 Ответ

0 голосов
/ 25 октября 2019

Вам следует избегать использования Select, когда это возможно. Вы также должны квалифицировать свои диапазоны. Это означает, что вы должны включить рабочую книгу и рабочий лист, иначе вы будете использовать любой активный лист, который может быть не тем, который вам нужен. При этом вы уменьшаете количество строк и делаете его более удобным для чтения. Вы можете повторить для дополнительных строк.

With ThisWorkbook.Sheets("RAW DATA FILE")
    .Range("A1") = "=IFERROR(IF(RC2=""customer account"",INDEX('FEED DATA'!C[3],match('RAW DATA FILE'!R[1]C2,'FEED DATA'!C[5],0)),""""),"""")"
    .Range("A1").AutoFill .Range("A1:A5")
End With
...