我有一個基於簡單的查找程序,它的工作原理和返回正確的值。我想知道是否有一種方法可以合併= LEFT函數,使其返回vlookup結果的前兩個字符。Excel-VBA返回使用左側的查找結果
ub Store_Lookup_left_test()
Dim rw As Long, x As Range
Dim extwbk As Workbook, twb As Workbook
Set twb = ThisWorkbook
Set extwbk = Workbooks.Open("H:\****\****\Master Store Info.xlsm")
Set x = extwbk.Worksheets("Info Sheet").Range("A1:C999999")
With twb.Sheets("Sheet1")
For rw = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(rw, 10) = Application.VLookup(.Cells(rw, 1).Value2, x, 3, False)
Next rw
End With
所以通過類比=Left(vlookup(a1,A1:C1,3,0),2)
,我可以做類似像 .cells(rw, 10) = application.left(application.vlookup(.cells(rw, 1).Value2, x, 3, False),2)
什麼?
目前的VLOOKUP結果是
英國光學,或愛爾蘭光學
,我希望它是
英國,IR
剛纔想和它返回的 「運行時錯誤 '13',類型不匹配」 爲.Cells(RW,10)=左(Application.VLookup(.Cells(RW,1).Value2, x,3,False),2)我已閱讀文檔,非常感謝。我是否需要引入另一個變量並將其聲明爲String? – user8449681
這可能意味着您從查找中得到空單元格結果。 首先我會改變Set x = extwbk.Worksheets(「Info Sheet」)。Range(「A1:C999999」) - 使用一個沒有空單元的範圍。 – Lobsterpants
然後將application.vlookup(.cells(rw,1).Value2,x,3,False)賦值給一個變量,並在結果爲left之前檢查它是否爲空 – Lobsterpants