首页 > 解决方案 > 如何让 Excel 中 ActiveX InputBox 的输入出现在我的 VBA 代码中?

问题描述

我正在尝试在 Excel 中制作一个用户数据输入表,以便它可以从另一个工作表中过滤掉数据库,但是,我不知道如何使用从该输入表中获取的数据并将其保存在我的 VBA 代码。

这是我的数据输入表:

在此处输入图像描述

我想要做的是替换此代码中的弹出输入框并替换数据输入表中的输入。这是之前的代码:

Sub InputFilter()

    Dim strInput As String
    Dim strInput1 As String
    Dim strInput2 As String

        ActiveSheet.AutoFilterMode = False
        strInput = InputBox("Enter your value to filter WPP")
        'Selection.AutoFilter
        ActiveSheet.Range("$A$4:$BL$351").AutoFilter Field:=8, Criteria1:=strInput 'User Input for desired WPP

        strInput1 = InputBox("Enter your Product Category")
        'Selection.AutoFilter
        ActiveSheet.Range("$A$4:$BL$351").AutoFilter Field:=6, Criteria1:=strInput1 'User Input for Product Category

....

把它变成这样的东西,但它一直抛出 438 错误,并且输入表中的数据不想替换 strInput

Sub test()

ActiveSheet.AutoFilterMode = False
ActiveWorkbook.Worksheets("Raw Data Domestic").strInput = ActiveSheet("Sheet").txtWPP.Value
ActiveSheet("Raw Data Domestic").Range("$A$4:$BL$351").AutoFilter Field:=8, Criteria1:=strInput


End Sub

标签: excelvba

解决方案


ActiveSheet.Range("$A$4:$BL$351").AutoFilter Field:=6, Criteria1:=strInput需要将字符串分配给Criteria1属性。这个字符串来自哪里并不重要。以下任何一项都可以,并且可以给出更多示例。

strInput = InputBox("Enter your value to filter WPP")
or
strInPut = ActiveSheet.Cells(3, 1).value
or
strInput = ActiveSheet.txtWPP.Value

请记住,它ActiveSheet指定了活动工作表,无论其名称如何。ActiveSheet("Sheet")因此是不可能的。要么只是ActiveSheet要么Worksheets("Sheet")


推荐阅读