我目前正在尝试使用一个组合框来根据另一个组合框值添加项目,但是我正在解开。
以下是我到目前为止的代码 - 通过试验和错误我已经到了这个阶段,虽然这仍然给我一个与代码的最后一行有关的“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
答案 0 :(得分:0)
您正在分配错误的对象。
您正在尝试设置组合框,ProductInfo等于范围。
您要做的是使用组合框的“RowSource”属性
例如:
Me.ProductInfo2.RowSource = "mySheet!$A$1:$A$10"
这将使ProductInfo2组合框选择单元格A1-A10中的项目。
目前还不清楚您要使用匹配/索引工作表功能获得什么。如果单元格的内容具有范围,则只需使用内容等于此行源。因此,例如,如果表示“strNameProductDescription”的列中包含“myRange”范围,则可以简单地修改代码以将其放入RowSource属性中。如果它包含一些其他信息,那么您需要构建您正在寻找的范围,以便它与上面显示的线类似。如果myRange是工作表上的范围,那么代码
Me.ProductInfo2.RowSource = "myRange"
会奏效。