答案1
我认为这应该可行,至少在 Excel 2011 中可行。
在下面的代码中,“ComboResult”是组合框的输出(“单元格链接”)。它必须作为双引号中的单元格引用输入,即“C7”。
类似地,“LookupTable”是您的植物表中的单元格范围,即“A1:E50”。同样,双引号。我假设您的查找表在 Sheet2 上。您可以使用 Sheets("sheet name").Range() 使用命名工作表。
因为组合框输出一个数字(列表中用户选择的位置),所以查找表必须有一个索引列作为第一列。它将是 1、2、3 等,直到列表中的植物数量。
Sub FillTextbox()
'Set up variables
Dim TextboxName As String
Dim TextboxText As String
Dim Line1Text As String
Dim Line2Text As String
Dim Line3Text As String
'Assemble the text
Line1Text = "Plant Number: " &
Sheet2.Application.WorksheetFunction.VLookup(Range("ComboResult"),
Sheet2.Range("LookupTable"), 3, False)
Line2Text = "Purchasing Group: " &
Sheet2.Application.WorksheetFunction.VLookup(Range("ComboResult"),
Sheet2.Range("LookupTable"), 4, False)
Line3Text = "Profit Center: " &
Sheet2.Application.WorksheetFunction.VLookup(Range("ComboResult"),
Sheet2.Range("LookupTable"), 5, False)
TextboxText = Line1Text & vbNewLine & Line2Text & vbNewLine & Line3Text
'Fill the Textbox
TextboxName = "TextBox 1"
ActiveSheet.Shapes(TextboxName).DrawingObject.Text = TextboxText
End Sub
添加索引列后,您想要的数据将位于表的第 3、4 和 5 列,并且 vlookup 函数将根据组合框中选择的索引获取这些值。