2
我是vba的新手,真的很看重繞過這個當前路障的方向。我想爲選定範圍運行Vlookup
。 Vlookup
將引用每天更新的數據。更改所需的範圍
- 1天,我想爲
Vlookup
到所選Range ("B2:B4")
的每個單元返回一個值。 - 第2天,引用的數據將發生變化,我希望所選範圍將一列向右移動
Range("C2:C4")
。
我想確保每次運行宏時,範圍都向右移動一列,以比較一天到下一天數據的變化。
我已經提供了下面的代碼,它允許我在Range("B2:B4")
中運行Vlookup
,但我還沒有弄清楚如何根據下一個空列更改範圍。
這就是說,非常感謝您的幫助,非常感謝。
Sub FillinBlanks()
Dim rng As Range
Set rng = Worksheets("Sheet2").Range("b2:b4")
For Each cell In rng
If IsEmpty(cell) Then
cell.FormulaR1C1 = "=vlookup(Sheet2!rc1,Sheet1!r5c6:r1000c8,3,false)"
End If
Next cell
End Sub
你會碰巧知道如何在vlookup填充所選範圍後硬編碼每個範圍?到目前爲止,在基於更改的引用數據運行新的查找時,先前的範圍正在根據新數據發生變化,因爲它們尚未進行硬編碼,並且仍然參考基於查找公式的數據。一旦vlookup已經填滿範圍,我想對範圍進行硬編碼,以便這個範圍內的數據不會根據新的參考數據而改變。非常感謝您的幫助和指導。 – natbuild34 2014-10-26 22:21:12
您的意思是說當第二天範圍內的數據發生變化時,col B數據不應該改變嗎? – 2014-10-26 22:32:33
如果是的話,那麼在行'End Sub'之前加上'Columns(lCol).Value = Columns(lCol).Value'這一行。 – 2014-10-26 22:38:12