2016-09-13 3 views
0

Я работаю над приведенной ниже формулой для данных Vlookup с другого листа. Формула должна быть помещена в 14-й столбец и каждые 7 строк, vlookuping первое значение столбца.VLOOKUP из другого листа, применять формулу каждую n-ю строку

Sub test3() 
'Vlookuping on Column N 


Dim lastRow As Long 
lastRow = Cells(Rows.Count, 14).End(xlUp).Row 'Checks last row with data 

Dim cel As Range, rng As Range 

Dim sheetName, lookupFrom, myRange   'variables 
sheetName = "Plan2" 'the worksheet i want to get data from 
lookupFrom = ActiveCell.Offset(0, -14).Address ' 
myRange = "'" & sheetName & "'!1:1048576" 

For i = 3 To lastRow Step 7 ' 
    Cells(i, 14).Select  'i= first value; step= lines to jump 
    ActiveCell.Formula = "=VLOOKUP(" & lookupFrom & ";" & myRange & "; 14; FALSE)" 

Next i 

End Sub 

Example Sheet

Я хочу, чтобы поместить формулу на розовые клетки (колонка N), vlookuping розового значения из первой ячейки на другой лист. Моя фактическая формула даже не выполняется.

+1

Чтобы заставить формулу работать, замените ';' на ','. vba очень ориентирован на английский язык в США, и формулу нужно вводить так, как если бы ваш компьютер был настроен на американскую локальную сеть. –

+0

Спасибо, он почти работает. Однако он открывает окно для выбора листа, на котором я хочу извлечь данные для каждой переменной. Есть ли способ, которым я мог бы сконструировать макрос для работы только с этим листом? – Serveira

+0

Затем проверьте правописание на «Plan2». убедитесь, что оно написано точно так же, как имя фактического листа. –

ответ

0

Попробуйте код, приведенный ниже, с 2 исключениями:

1.Modify «VlookRes» на название листа - где вы хотите, чтобы результаты быть.

2.You имеет объединенных ячеек в колонке А (согласно вашему изображению было загружено), вы объединяете Ряды 2 нед 6 в колонке А, это означает, что значение Cell A3 будет 0. Если вы хотите, чтобы значения читались из третьей строки, начните слияние из строки 3 (и скоро для следующих значений в столбце A).

Option Explicit 

Sub test3() 

'Vlookuping on Column N 

Dim ShtPlan  As Worksheet 
Dim ActSht  As Worksheet 
Dim lastRow  As Long 
Dim sheetName As String 
Dim lookupFrom As String 
Dim myRange  As String 
Dim i   As Long 

' modify this Sheet Name to your sheet name (where you want to keep your results) 
Set ActSht = Sheets("VlookRes") 
lastRow = ActSht.Cells(ActSht.Rows.Count, 14).End(xlUp).Row ' Checks last row with data 

sheetName = "Plan2" 'the worksheet i want to get data from 
Set ShtPlan = Sheets(sheetName) 

myRange = "'" & sheetName & "'!1:1048576" 

For i = 3 To lastRow Step 7 
    lookupFrom = ActSht.Cells(i, 1).Address ' ActiveCell.Offset(0, -14).Address ' 
    Cells(i, 14).Formula = "=VLOOKUP(" & lookupFrom & "," & myRange & ", 14, FALSE)" 
Next i 

End Sub 
+0

Спасибо, что выглядит аккуратно и отлично работает. Я просто изменил 'lookupFrom' на' lookupFrom = ActSht.Cells (i-1, 1) .Address', чтобы он возвращал объединенную ячейку. – Serveira

+0

Г-н Шай, где мне нужно будет модифицировать этот код, чтобы получить информацию из другой (закрытой) книги? Это возможно? – Serveira

+0

Это еще одна история, возможно, вы найдете то, что вы смотрите по этой ссылке: http://stackoverflow.com/questions/31823845/how-to-access-a-closed-excel-workbook-using-vlookup-vba –

Смежные вопросы