返回列表 上一主題 發帖

如何用vlookup自動收尋比對的項次數量

如何用vlookup自動收尋比對的項次數量

請問一般使用vlookup時,使用滑鼠點兩下即可整欄都自動填入
使用錄製功能時,因為每次項次都不同,該如何去執行?
目前我是用下面這樣錄製,有比較明細指令讓vba能夠抓到對應的欄位?

    Sheets("託外報表").Select 'VLOOKUP比對舊資料採購補充
    Range("B2").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=VLOOKUP(C[-1],'託外報表(總表)'!C[-1]:C,2,0)"
    Range("B2").Select
    Selection.AutoFill Destination:=Range("B2:B3000")
    Range("B2:B3000").Select
    Columns("B:B").Select  '刪除N/A
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.Replace What:="#N/A", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

Sub BBB()
Sheet1.Select
Range("A1").Select
For X = 2 To 4
If 1 = 1 Then
  M = Sheet1.Cells(X, 1)
   mymax = Evaluate("VLOOKUP(""" & M & """,工作表2!A:B,2,FALSE)")
   If Application.IsError(mymax) = True Then mymax = ""
   Sheet1.Cells(X, 2) = mymax
End If
Next
End Sub

TOP

回復 2# rouber590324
謝謝,等等測試看看
有問題再請教

TOP

With Range([託外報表!B2], [託外報表!A65536].End(xlUp)(1, 2))  '以A欄取得最後一筆位置, 再右移一格  
     .FormulaR1C1 = "=VLOOKUP(RC[-1],'託外報表(總表)'!C[-1]:C,2,0)"
     .Value = .Value
     .Replace "#N/A", ""
End With
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

回復 4# 准提部林

With Range([託外報表!B2], [託外報表!A65536].End(xlUp)(1, 2))  '以A欄取得最後一筆位置, 再右移一格  
請問這一行的意思改為(1,3)會將託外報表中,A-C欄位一起比對過來的意思嗎?

TOP

本帖最後由 n7822123 於 2020-6-11 11:10 編輯

回復 5# cclo0728

執行以下程式,看哪些儲存格被選取就可以知道範圍了~,可自行驗證不須要問別人

  Range([託外報表!B2], [託外報表!A65536].End(xlUp)(1, 3)).Select
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 5# cclo0728
可自行去測試有何不同???

再給兩種方法:
Sub TTT1()
R& = [託外報表!A65536].End(xlUp).Row
With [託外報表!B2].Resize(R - 1)
     .FormulaR1C1 = "=VLOOKUP(RC[-1],'託外報表(總表)'!C[-1]:C,2,0)"
     .Value = .Value
     .Replace "#N/A", ""
End With
End Sub

Sub TTT2()
R& = [託外報表!A65536].End(xlUp).Row
With Sheets("託外報表").Range("B2:B" & R)
     .FormulaR1C1 = "=VLOOKUP(RC[-1],'託外報表(總表)'!C[-1]:C,2,0)"
     .Value = .Value
     .Replace "#N/A", ""
End With
End Sub
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

回復 7# 准提部林

謝謝,我理解了

TOP

回復 6# n7822123


    Range([託外報表!B2], [託外報表!A65536].End(xlUp)(1, 3)).Select
我理解了select,感謝指導

TOP

        靜思自在 : 並非有錢魷是快樂,問心無愧心最安。
返回列表 上一主題