簡體   English   中英

Excel VBA 查找

[英]Excel VBA Lookup

嘗試在 Excel 中使用 VBA 來執行一些 VLookup 等效功能。 我有這個示例表:

在此處輸入圖片說明

基本上,這就是我想要做的:

1) 根據 B12 中的值,查找表 A1:A8 中的值。 2) 將單元格 B13 設置為查找返回值 3) 如果未找到匹配項(例如,B12=100000),則拋出錯誤消息。

我目前正在使用一堆“IF .. ElseIf”語句,並且維護起來變得太麻煩了。

提前致謝。

您可以在單元格 B13 中使用公式:

=IF(B10>A8,"Error",INDEX($A$2:$B$8, SUMPRODUCT(--(A2:A8<=B10)),2))

這是基於您給出的示例的包容性(即數量 1-9 屬於第 1 級)。

在工作表的私有代碼表中嘗試此操作(右鍵單擊工作表名稱選項卡,查看代碼。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B12" Then
        On Error GoTo meh
        Application.EnableEvents = False
        Dim m As Variant
        If IsNumeric(Target) Then
            If Target < 1 Or Target > Application.Max(Range("A2:A8")) Then
                Target.Offset(1, 0) = "out of range"
            Else
                m = Application.Match(Target, Range("A1:A8"))
                Target.Offset(1, 0) = Cells(m, "B").Value
            End If
        End If
    End If

meh:
    Application.EnableEvents = True

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM