使用宏打开特定表的默认excel数据表单

时间:2013-01-26 18:02:59

标签: excel-vba excel-2010 vba excel

我正在处理一个包含多个大表的speadsheet,其信息是通过我创建的基于电子表格的用户表单输入的,因为我不熟悉或不习惯使用vba userforms,我正在尝试重新调用条目以便编辑它们。

我能想到的最简单的方法是打开默认的Excel数据表。我需要知道的是;有没有办法为已经输入标准的特定表打开此数据表?

例如。我需要编辑一个产品表,所以我已经知道我正在编辑产品表,我知道产品的名称。我有一个userform,再次基于电子表格,我选择条目类型(在这种情况下是产品),然后输入产品名称。我想要做的是使用该信息打开产品表的数据形式,并且已填写名称的条件字段,以减少搜索条目所花费的时间,因为这些表有数百个条目。

1 个答案:

答案 0 :(得分:1)

对于这个简单的例子,我将带有产品的工作表称为“产品”。有两列,列A中有名称,列B中有ID

在Userform上我放了两个名为

的文本框
  • TextBox_Productname

  • TextBox_ProductID

然后我将以下代码添加到Userform中,只要productname文本框的值发生更改并且它失去焦点,就会触发该代码。

Private Sub TextBox_Productname_Change()

    ' Clear the content of all Textboxes but the Productname
    TextBox_ProductID.Value = ""

    ' Analyse the Cells in the Worksheet called "Products"
    With Worksheets("Products")

        ' Assume in the first row are the headers so start
        ' looking at the second row and go to the final one
        For i = 2 To .UsedRange.Rows.Count

            ' check whether the value in the first column
            ' matches the value of the Textbox_Productname
            If .Cells(i, 1) = TextBox_Productname.Value Then

                ' If there is a match copy the values of all
                ' the other columns to the textboxes
                TextBox_ProductID.Value = .Cells(i, 2)
            End If

        Next i

    End With

End Sub