0

我是 VBA 新手,目前正在开发一个用户表单,该用户表单有 3 个 ComboBoxes,用户从每个 ComboBoxes 中选择 1 个项目。目的是让代码从电子表格中查找相应的第 4 个值并将其返回到用户窗体上的文本框。现在我收到“类型不匹配(错误 13):”

我一直在摆弄这个已经3天了。有些网站说 SumProduct 函数在 VBA 中不起作用,有些网站说只要指定“WorkSheetFunction”就可以,还有一些网站说应该改用“评估”。就像在这篇文章中一样: VBA 中的 SUMPRODUCT 公式 (我没有太多运气使用“评估”,但我的语法可能已经关闭)

无论如何,我创建了一个快速示例来展示我正在尝试做的事情。如果有人可以提供帮助,将不胜感激。 工作表数据

这是我一直在尝试的代码:

Private Sub TestButton_Click()
textboxTesting.Text =    Application.WorkSheetFucntion.Index(Range("Thickness"), _
Application.WorkSheetFucntion.SumProduct((Range("Wood") = "Oak") _
* (Range("Metal") = "Copper") * (Range("Box") = "Red")), 0)
End Sub
4

1 回答 1

0

更好的方法是编写自己的函数,我相信下面的内容更容易理解:

Sub Test()
    Dim thickness

    thickness = FindThickness("oak", "copper", "red")

    MsgBox (thickness)
End Sub

Function FindThickness(wood As String, metal As String, box As String) As String

    Dim rng As Range

    Set rng = Range("Wood")

    For Each cell In rng
        If cell.Value = wood _
        And cell.Offset(0, 1).Value = metal _
        And cell.Offset(0, 3).Value = box Then

            FindThickness = cell.Offset(0, 2).Value
            Exit Function

        End If

    Next cell

End Function
于 2019-02-24T17:10:05.270 回答