基于另一个值VBA将值添加到组合框

时间:2016-02-24 21:08:57

标签: vba combobox

我目前正在尝试使用一个组合框来根据另一个组合框值添加项目,但是我正在解开。

以下是我到目前为止的代码 - 通过试验和错误我已经到了这个阶段,虽然这仍然给我一个与代码的最后一行有关的“1004”错误。有没有更好的方法来写这个以获得相同的结果?

Private Sub ProductInfo1_Change()

Dim strName As String
Dim strNameProductAllData As String
Dim strNameProductName As String
Dim strNameProductDescription As String

strName = Replace(OrderForm1.OrderFrm3.Value, " ", "")
    sheet = "strName"
strNameProductName = Replace(strName, " ", "") & "productname"

strNameProductDescription = Replace(strName, " ", "") & "productdescription"


    Me.ProductInfo2 = Application.WorksheetFunction.Index(Sheets(strName).Range(strNameProductDescription), Application.WorksheetFunction.Match(ProductInfo1.Value, Sheets(strName).Range(strNameProductName), 0))

End Sub

1 个答案:

答案 0 :(得分:0)

您正在分配错误的对象。

您正在尝试设置组合框,ProductInfo等于范围。

您要做的是使用组合框的“RowSource”属性

例如:

  Me.ProductInfo2.RowSource = "mySheet!$A$1:$A$10"

这将使ProductInfo2组合框选择单元格A1-A10中的项目。

目前还不清楚您要使用匹配/索引工作表功能获得什么。如果单元格的内容具有范围,则只需使用内容等于此行源。因此,例如,如果表示“strNameProductDescription”的列中包含“myRange”范围,则可以简单地修改代码以将其放入RowSource属性中。如果它包含一些其他信息,那么您需要构建您正在寻找的范围,以便它与上面显示的线类似。如果myRange是工作表上的范围,那么代码

  Me.ProductInfo2.RowSource = "myRange" 

会奏效。