2016-06-21 33 views
0

我有一個使用VBA進行VlookUP的Excel工作表。問題是我提取信息,金額總是不同的。我想找到一種方法來添加代碼,以添加信息,直到沒有更多信息添加爲止。如何更改範圍只有當有信息時才運行

這裏是工作,但只對我放在細胞代碼:

Sub vLook() 
With ThisWorkbook.Worksheets("EODComponents").Range("f5:F200") 
    .Formula = "=VLOOKUP(C5,($H$5:$i$34),2,FALSE)" 
    .Value = .Value 
End With 

End Sub 
+0

我需要改變F200,直到沒有更多的信息comapare –

+0

你試過'UsedRange'嗎? – cyboashu

回答

0

您可以設置一個lastRow

Sub vLook() 
Dim lastRow as Long 

With ThisWorkbook.Worksheets("EODComponents") 
    lastRow = .Cells(.Rows.Count,6).End(xlUp).Row 

    With .Range("f5:F" & lastRow) 
     .Formula = "=VLOOKUP(C5,($H$5:$i$34),2,FALSE)" 
     .Value = .Value 
    End With 
End With 

End Sub 
+0

布魯斯,它只給了我F5的價值,但不是其餘。你認爲這可能是拉斯特羅的東西? @bruceWayne –

+0

@NickNorwood - 如果你通過它(按'F8'),'lastRow'被設置爲什麼?我假設你的列F有最多的數據,所以我從那裏得到最後一行數。哦!此外,由於您想使用公式(相對而言,我假設),將'Vlookup'行更改爲'.FormulaR1C1 =「= VLOOKUP(RC [-3],R5C8:R34C9,2,FALSE)」'。 – BruceWayne

0

也許你可以嘗試使用Do while -loop?

如果你把while語句放在正確的位置,這個過程會一直持續到你的語句變成false;沒有更多的信息要添加。

您可以使用Len()函數檢查單元格內的文本/值的長度,當此值爲零時,您可以假定單元格爲空。

關於這個條目的更多信息可以找到here

例子:

Public Sub Something() 
Dim i As Integer 
    i = 1 

Do While (Len(Cells(i, 1).Text) > 0) 
    i = i + 1 
Loop 

MsgBox "The next row of column 'A' is empty: A" & i 

End Sub 

希望這有助於。

相關問題