如何使用选定的ComboBox项作为公式中的引用

时间:2013-08-20 17:48:28

标签: excel vba

我有一个工作簿,其中有几个静态工作表,但它还要求用户导入一些工作表,我不知道他们将导入多少张工作表。导入的纸张将具有相同的格式。

我正在尝试开发一个可以使用导入的工作表名称作为参考的公式,以便公式可以在导入的工作表中查找数据。

现在我有一个动态的comboBox,上面有所有的工作表名称。我正在尝试编写一个代码,让我抓住用户选择的工作表(来自comboBox),然后在公式中使用它。

我在网站上找到了以下代码,但是不是某些对象,我有一个动态数量的对象(工作表)

Dim ws as Worksheet
Dim sheetName as ComboBox
Dim shtName as String

Set ws = Worksheets("Analysis Sheet")
Set sheetName = ws.OLEObjects("NameFromActiveXProperties").Object

shtName = sheetName.Value

由于公司政策,我无法上传我的工作表。

我有一个公式= MATCH('分析表'!$ A $ 9&“*”, shtName !$ A $ 10:$ A $ 136 ) 其中shtName是我想要设置为ComboBox中所选项的引用的变量。 有人可以帮我这个吗?

我不擅长描述问题。如果有任何不清楚的地方,请告诉我。 非常感谢你!

帮助推荐!!!

1 个答案:

答案 0 :(得分:0)

您可以在这里使用一些方法。最简单的方法是将INDIRECT工作表函数与返回工作表名称的函数结合使用(您只在此处隐式命名):

=MATCH('Analysis Sheet'!$A$9 & "*", INDIRECT("'" & shtName() & "'" & "!$A$10:$A$136"))

或者,您可以修改shtName函数:

Public Function shtName(SheetRange as string) as range
    Dim ws as Worksheet
    Dim sheetName as ComboBox
    Dim shtName as String

    Set ws = Worksheets("Analysis Sheet")
    Set sheetName = ws.OLEObjects("NameFromActiveXProperties").Object

    shtName = worksheets(sheetName.Value).Range(SheetRange)
End Function

......然后使用它:

=MATCH('Analysis Sheet'!$A$9&"*", shtName("$A$10:$A$136"))