2017-07-01 49 views
0

我有兩個表BW和PSW。VBA,使用查找時出錯

隨着BW的數據被從行4開始上述3行進行合併和我有一些命令按鈕那裏。紙張PSW從第一行開始。

我正在尋找在Sheet1中的ID,從L5開始,當ID在Sheet2的匹配,它就會從Sheet2中到工作表Sheet1的日期。 我正在使用下面的代碼。該代碼不執行任何輸出。誰能說出我錯在哪裏?

我想,在下面的線,範圍從A開始,因爲我的數據從ROW5啓動時,它不計數。如果是這種情況,那麼我應該如何改變範圍。如果我的數據在沒有任何命令按鈕的情況下從row1開始,那麼我運行了這段代碼。

totalrows =表( 「BW」)。將細胞(Rows.Count, 「A」)。完(xlUp).Row

Sub lookupePSR() 
Dim totalrows As Long, totalrowsSht2 As Long 
totalrows = Sheets("PSW").Cells(Rows.Count, "A").End(xlUp).Row 
totalrowsSht2 = Sheets("PSW").Cells(Rows.Count, "A").End(xlUp).Row 
Sheets("PSW").Range("AA5:AA" & totalrows).Formula = Application.WorksheetFunction.IfError(Application.VLookup(Sheets("PSW").Range("L5:L" & totalrowsSht2), Sheets("PSW").Range("$A:$L"), 7, 0), "") 
End Sub 
+1

是否要在單元格中放置**公式**,或者在單元格中放置**結果**? –

+0

@細胞 – Mikz

+0

'表( 「PSW」)下式的Gary'sStudent結果範圍。( 「AA5:AA」 &totalrows).Formula = 「放到這裏ACTUAL FORMULA」'將式中的工作表,然後把它在我給的代碼中。用''''替換所有的''''' –

回答

2

正如註釋所提到的,把實際式進入工作表;可選地還原爲由公式返回的值。

with Sheets("PSW").Range("AA5:AA" & totalrows) 
    .Formula = "=iferror(vlookup(l5, $a:$g, 7, false), text(,))" 
    'optionally revert the formulas' returned values to values in cells 
    .value = .value 
end with 

TEXT(,)相同"";即零長度字符串。我使用這種方法是因爲在使用像上面公式一樣的帶引號的字符串中使用雙引號時(例如""變爲""""),並且會使事情混淆。

我剪你的查找下,到答:摹,因爲你只是在尋找範圍內的第七列。

+0

它仍然不工作,我不知道爲什麼。:( – Mikz

+0

*仍然不工作*既不是有效的錯誤代碼,也不是有效的錯誤描述。 – Jeeped