close

2669

請問Excel VBA 能實現VLOOKUP函數多條件取得資料嗎?

雷明:「請問可以透過ExcelVLOOKUP函數實現多條件選擇嗎?主要是想透過工作表1中表格的「公司」以及「出貨產品」欄位,去查工作表2中,符合「公司」以及「出貨產品」的那筆資料中的「數量、出貨時間以及包裝」等資訊,並回填至工作表2中。如果用公式的話,可以透過VLOOKUP搭配IF來實現,但筆數一多的話,會寫到頭昏腦脹,可以麻煩指導如何使用VBA巨集來處理嗎?謝謝!」

海綿寶寶:「使用VBA的作法是:

ALT+F11鍵啟動VBA視窗。

點取「插入 > 模組」指令,插入一個新的空白模組。

Sheet1=A.查詢表

Sheet2=B.資料來源

輸入下列程序:

Type OneRec

    Amount As String

    Outboundtime As String

    Package As String

End Type

Function myVlookup(ByVal CompanyName As String, ByVal Product As String) As OneRec

    Dim retOneRec As OneRec

    Dim bRun As Boolean

    Dim nRow As Integer

 

    bRun = True

    nRow = 1

    Do

        If (Worksheets("Sheet2").Range("A" & nRow).Value = "") Then

            bRun = False

            Exit Do

        End If

       

        If ((Worksheets("Sheet2").Range("A" & nRow).Value = CompanyName) And (Worksheets("Sheet2").Range("C" & nRow).Value = Product)) Then

            retOneRec.Amount = Worksheets("Sheet2").Range("D" & nRow).Value

            retOneRec.Outboundtime = Worksheets("Sheet2").Range("E" & nRow).Value

            retOneRec.Package = Worksheets("Sheet2").Range("F" & nRow).Value

            bRun = False

        End If

              

        nRow = nRow + 1

    Loop Until bRun = False

   

    myVlookup = retOneRec

End Function

Sub Main()

    Dim Result As OneRec

    Dim bRun As Boolean

    Dim nRow As Integer

   

    bRun = True

    nRow = 2

   

    Do

        If (Worksheets("Sheet1").Range("A" & nRow).Value = "") Then

            bRun = False

            Exit Do

        End If

              

        Result = myVlookup(Worksheets("Sheet1").Range("A" & nRow).Value, Worksheets("Sheet1").Range("C" & nRow).Value)

              

        Worksheets("Sheet1").Range("D" & nRow).Value = Result.Amount

        Worksheets("Sheet1").Range("E" & nRow).Value = Result.Outboundtime

        Worksheets("Sheet1").Range("F" & nRow).Value = Result.Package

              

        nRow = nRow + 1

    Loop Until bRun = False

End Sub

以上就是今天主要學習的知識點,希望對大家有所幫助~~有什麼問題歡迎留言,我會儘量及時的給大家答覆~~

部落格相關範例

2021.11.03

2650讓自動校正輸入統一的文字

2021.11.02

2649Excel中自訂梯形面積函數

2021.11.01

2648把資料徹底隱藏起來

2021.10.31

2644關於歐元的轉換

2021.10.30

2643Excel中攝影功能的妙用

2021.10.29

2642計算儲存格中的總字數

2021.10.28

2640建立文字型長條圖

2021.10.27

2641用特殊符號補齊字元數

2021.10.26

2630使用Excel數組公式自製日曆

2021.10.25

2639Excel找出計算結果的位置

2021.10.24

2638如果要將一個數值除指定的數,並能自動分配在不同格子上要怎麼做...

2021.10.23

2632欄位字串替換

2021.10.22

2629Excel查表對照值

2021.10.21

2628VBA 將字串改為函數

2021.10.20

2627相對位址

2021.10.19

2626絕對與相對的儲存格位址

2021.10.18

2624Excel秘密功能-顯示儲存格公式

2021.10.17

2623Excel秘密功能-固定小數位數

 


arrow
arrow
    創作者介紹

    錦子老師 發表在 痞客邦 留言(0) 人氣()