【发布时间】:2015-03-11 21:07:51
【问题描述】:
我有一个带有列表框的表单,它动态地提供当前工作簿中的工作表列表(代码如下)。我希望获取选定的工作表并在稍后的过程中在公式中引用它。从玩了几个小时,我似乎无法做到这一点。我相信我在某处读到过,您不能将字符串带回 sub 并使用它来引用对象。所以我想也许我可以创建两个列表框
- 工作表名称
- 用于工作表索引
我可以将索引号传递给并可能在我的公式中使用它来从正确的工作表中查找项目。
在我的一生中,我似乎无法找到将两者联系起来的方法,因为这些项目总是在变化;该代码将由多个操作员在多个工作簿上运行,因此布局很可能会在用户之间发生变化。我可以很容易地添加带有索引#的第二个列表框,但是我有一个块关于如何关联对用户有意义的名称和我可以传回子的索引。我意识到列表框的“单击时”过程将两者关联起来,但由于字段的动态特性,我无法想出将其放入代码的逻辑。
For N = 1 To ActiveWorkbook.Sheets.Count
With ListBox1
.AddItem ActiveWorkbook.Sheets(N).Name
End With
Next N
【问题讨论】:
-
您可以使用名称和索引来引用工作表。您想通过获取所选项目的字符串来完成什么?即
Msgbox(Worksheets(selectedItemFromList).Name) -
我想我可以将它添加到公式中以引用工作表(其中 xxxxxxxx 表示从列表框中选择): Cells(1, 1).FormulaR1C1 = "=VLOOKUP(R7C5," & xxxxxxx & "!R1C1:R65000C8,2,FALSE)" 我应该提到我正在将选择的工作表以变量类型传递回子:字符串。
-
您正在使用字符串构建公式。所以,我不确定为什么这不起作用?
标签: vba excel listbox userform