0

我有一个奇怪的问题。这是背景:我正在从另一个应用程序自动化 excel。我创建了一个名为“WorkbookSelection”的用户窗体,并在该窗体上放置了一个名为“WorkbookList”的列表框控件和一个名为“SelectionComplete”的命令按钮。

在显示表单之前,我已经确定 excel 已打开,列表框的目的是在 excel 中显示打开的工作簿,以便用户可以从中选择一个导入数据和导出新数据。

这是我试图用来填充列表框的代码:

Private Sub WorkbookSelection_Initialize()

Dim ExcelAp                 As Excel.Application
Dim FedExWkbk               As Excel.Workbook
Dim OpenedWorkbooks         As Excel.Workbooks
Dim i                       As Integer

Set ExcelAp = Excel.Application
Set OpenedWorkbooks = ExcelAp.Workbooks

For Each FedExWkbk In OpenedWorkbooks
    WorkbookList.AddItem FedExWkbk.Name
Next FedExWkbk

End Sub

我也试过

Private Sub WorkbookSelection_Activate()

Private Sub UserForm_Initialize()

虽然没有运气。如果有人有任何建议,我会全力以赴。

4

1 回答 1

0

好的,我在这里找到了解决方案。逐步完成子程序后,我注意到它没有在打开的工作簿中循环,因此存在一些问题,即它没有抓住正确的 excel 实例,但仍然没有创建它自己的实例。因此,我将一行修改为后期绑定:

Set ExcelAp = Excel.Application

Set ExcelAp = GetObject(, "Excel.Application")

你瞧,它起作用了。只是想我会把这个留给将来可能会找到这种情况的答案的任何人。

于 2013-09-13T17:23:45.523 回答