vba vlookup в 2 разных книгах до конца предыдущей строки - PullRequest
0 голосов
/ 25 октября 2018

У меня есть 2 файла Excel:

barkod.xlsx

campaign.xlsx

Мне нужно сделать команду vlookup в barkod.xlsx.Я хочу найти столбец E в barkod.xlsx через campaign.xlsx - столбцы A: B.Я также попытался дважды перетащить формулу до последнего значения E в конце.Результат будет записан в столбце F в barkod.xlsx.

Я пытался использовать следующие коды:

Private Sub CommandButton5_Click()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim x As Workbook
Dim y As Workbook




'## Open all workbooks first:
Set x = Workbooks.Open("C:\Users\mammadov.ali\Desktop\macros\barkod.xlsx")
Set y = Workbooks.Open("C:\Users\mammadov.ali\Desktop\macros\csv.csv")
Set q = Workbooks.Open("C:\Users\mammadov.ali\Desktop\macros\campaign.xlsx")


'## Clear the workbook first:
y.Sheets("csv").Range("A:M").Clear


'## Insert the column in the barkod file:
x.Sheets("barkod").Range("F1").EntireColumn.Insert

'## Insert the column header in the barkod file:
x.Sheets("barkod").Range("E1").Offset(0, 1).Value = "Discounts"


With x.Sheets("barkod").Range("F2")
.FormulaR1C1 = "=VLOOKUP(RC[-1], [campaign.xlsx]Sheet1!RC[-5]:RC[-4], 2, 0)"
.AutoFill Destination:=x.Sheets("barkod").Range("F3")

    End With

Я борюсь с этим почти 2 дня.Любая помощь будет высоко оценен.То, что я получаю, это не показывает мне правильный результат, и это только vlookup для: A2: B2 только.Также возникает ошибка во время выполнения.

1 Ответ

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

вам необходимо:

  • удалить "xlsx" и "R" из [campaign.xlsx]Sheet1!RC[-5]:RC[-4], 2, 0)"

  • иметь диапазон назначения AutoFill метод охватывает исходный диапазон

следующим образом:

With x.Sheets("barkod").Range("F2")
    .FormulaR1C1 = "=VLOOKUP(RC[-1], [campaign]Sheet1!C[-5]:C[-4], 2, 0)"
    .AutoFill Destination:=.Resize(2) ' this will autofill F2 and F3
End With

если вы хотите автоматически заполнить столько ячеек в столбце F, сколько не пустых значений в столбце E, тогда выбудет использовать:

    .AutoFill Destination:=.Resize(WorksheetFunction.CountA(.Offset(, -1).EntireColumn))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...