【发布时间】:2016-05-03 23:44:06
【问题描述】:
我想要一个组合框,列出当前在 excel 中打开的所有工作表名称。
我找到了一些可以列出所有打开的工作簿的代码,并对其进行了编辑以完成工作表。它似乎正确地循环浏览所有工作簿,但它只列出当前活动的 Excel 工作簿上的工作表。
当前代码如下。加载表单时调用此子程序。
dt.Columns.Add("sheets")
Try
If IsNothing(app) Then
app = CType(Marshal.GetActiveObject("Excel.Application"), Excel.Application)
End If
Dim bks = app.Workbooks
Dim dks = app.Worksheets
dt.Clear()
For Each bk As Excel.Workbook In bks
Debug.WriteLine(bk.Name)
For Each dk As Excel.Worksheet In dks
Debug.WriteLine(dk.Name)
dt.Rows.Add(dk.Name.ToString())
Next
Next
ComboBox1.DataSource = Nothing
ComboBox1.Items.Clear()
ComboBox1.DataSource = dt
ComboBox1.DisplayMember = "sheets"
Catch ex As Exception
MsgBox(ex.ToString())
End Try
【问题讨论】: