2013-02-06 105 views
0

有問題,在我的Excel 2010中VBA使用VLOOKUP我Excel 2010中VBA,與VLOOKUP循環

我想遍歷一個空白列每個單元,並從相鄰列從數據查找值資源。我想在循環中做到這一點。我曾在很多論壇上看過,並可以正確使用它。

繼承人我的代碼

Sheets("NPT(hrs)").Activate 
Dim NumberRows As Integer 
NumberRows = Range("a:a").Find("*", Range("A1"), SearchDirection:=xlPrevious).Row 
NumberRows = NumberRows 

ActiveCell.Offset(2, 69).Activate 
For RowNum = 1 To NumberRows 
    If Len(Range("BQ1").Offset(RowNum, 0)) = 0 Then 

     ActiveCell.Value = Application.WorksheetFunction.VLookup(Cells(RowNum, 68), "Equipment!A:K", 7, False) 

     ActiveCell.Offset(1, 0).Activate 
    '' This approach never workedXXX 
    'v = WorksheetFunction.VLookup(Cells(RowNum, 68), "Equipment!A:K", 7, False) 
      ' ActiveSheet.Cells(RowNum , 69).Formula = "=VLOOKUP(Cells(RowNum,68) ,Equipment!A:K,7,false)" 
    'ActiveCell.Text = "v" 


    'MsgBox "fin work?" 
End If 

回答

1

這裏的樣本是一個簡單的代碼塊,我寫複製什麼,我想你想要知道的。

我創建了一些示例數據。右側的查詢有單位價格,左側有一張表,在「總價」欄中缺少一些條目。

Excel screenshot of sample data

下面的代碼塊循環遍歷列C中的單元,並且每個找到一個空白小區的時間運行的VLOOKUP。

Sub FillInBlanks() 

    Dim rng As Range 
    Set rng = ActiveSheet.Range("C2:C21") 

    For Each cell In rng 
    If IsEmpty(cell) Then 
     cell.FormulaR1C1 = "=VLOOKUP(RC[-2],R1C7:R11C8,2,FALSE)*RC[-1]" 
    End If 
    Next cell 

End Sub 

運行此宏應該給你這個

Excel output

+0

謝謝,我嘗試過了,但我的範圍數據要查找的另一個頁面上,這似乎與這個問題 – schnarr