2017-09-18 61 views
0

問題:我想根據具有變量的範圍運行匹配函數。如何將匹配範圍設置爲VBA中的變量?

範圍:目標是在行x和最後一行之間的列A中找到單詞「awesome」的第一個實例;並返回行號

案例:

LastRow = Sheets("demo").Cells(Rows.Count, 1).End(xlUp).Row 
For x = 2 To LastRow 
Dim rng as Range 
Set rng = "A" & x & ":A" & LastRow 

嘗試:

"=Match("awesome","A" & x & ":A" & LastRow,0)" 
"=Match("awesome",range(""A"" & x & "":A"" & LastRow),0)" 
"=Match("awesome",rng,0)" 
"=Match("awesome",range(rng),0)" 

沒有任何作品!

+0

'=匹配的任何部分( 「真棒」,A:A,0)'都行。否則,您可能想查看[如何在vba中的字符串中加雙引號?](https://stackoverflow.com/q/9024724/11683)和[在Excel宏中將範圍變量傳遞到公式中](https:/ /stackoverflow.com/q/10811719/11683)。 – GSerg

+0

謝謝你的迴應,但是,我需要使範圍基於一個變量。我通常理解它的雙引號部分。我只是很難在Match函數的範圍內工作。 – Yosef

回答

0

此代碼將返回行號。所述LOOKAT:= xlWhole配襯整個單元值,LOOKAT:= xlPart,將匹配單元值

firstrowmatch = Worksheets("Demo").Range("A" & x & ":A" & LRow).Find(what:="awesome", lookat:=xlWhole).Row