簡體   English   中英

在Excel中使用vlookup函數制作VBA FOR循環

[英]Making a VBA FOR loop using vlookup function in Excel

我想使用Vlookup函數47次來獲取每個數據的值。 我將要填充的表稱為“表1”。 “表1從E3開始。我想使用vlookup查找單元格E3的值並將其填寫在F3中。

我將通過Vlookup從中返回值的表稱為“ Table2”。 “表2位於工作表“ CC名稱”中,並具有兩列A和B。

我已經嘗試了兩個FOR循環。 V FORUPUP函數的一個FOR循環重復47次。 vlookup函數“ ccName”的名稱的第二個FOR循環使用該函數填充“表1”中的值達43次,但是每次實現該代碼時都會出錯。

Sub GLcreation()

For n = 3 To 50
For c = 3 To 50

ccName(c) = WorksheetFunction.Vlookup(Range("E" & n), Worksheets("CC Name").Range("A:B"), 2, 0)

Range("F" & n) = ccName(c)

Next c
Next n

End Sub

如果您可以向我展示如何為正確的循環編碼,請多謝幫助。

通過擺脫c循環,正確的代碼是:

Range("F" & n) = WorksheetFunction.Vlookup(Range("E" & n), Worksheets("CC Name").Range("A:B"), 2, 0)

一旦不匹配,代碼將失敗。 在進行查找之前測試匹配是否安全。 這是一個更好的解決方案:

Sub GLcreation()

Dim n As Integer
Dim wf As WorksheetFunction
Set wf = WorksheetFunction

For n = 3 To 50
    If wf.CountIf(Worksheets("CC Name").Range("A:A"), Range("E" & n).Value) > 0 Then
        Range("F" & n).Value = wf.Index(Worksheets("CC Name").Range("B:B"), wf.Match(Range("E" & n).Value, Worksheets("CC Name").Range("A:A"), 0))
    End If
Next n

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM