Vba Listbox2仅显示Listbox1中选定工作簿的工作表
有两个列表框-Listbox1和Listbox2 我有一个用文件夹中的工作簿填充Listbox1的代码。单击任何工作簿将在列表框2中显示所有相关工作表Vba Listbox2仅显示Listbox1中选定工作簿的工作表,vba,excel,Vba,Excel,有两个列表框-Listbox1和Listbox2 我有一个用文件夹中的工作簿填充Listbox1的代码。单击任何工作簿将在列表框2中显示所有相关工作表 Private Sub ListBox1_Click() Dim idx As Long, sName As String Dim bk As Workbook, sh As Worksheet idx = ListBox1.ListIndex sName = ListBox1.List(idx) Application.DisplayAle
Private Sub ListBox1_Click()
Dim idx As Long, sName As String
Dim bk As Workbook, sh As Worksheet
idx = ListBox1.ListIndex
sName = ListBox1.List(idx)
Application.DisplayAlerts = False
Set bk = Workbooks.Open("D:\Counts\" & sName)
Application.DisplayAlerts = True
For Each sh In bk.Worksheets
ListBox2.AddItem sh.Name
Next
bk.Close SaveChanges:=False
End Sub
'====================================
Private Sub UserForm_Activate()
Dim DIRECTORY As String
'Clear Listboxes
ListBox1.Clear
'list directories
DIRECTORY = Dir("D:\Counts\*.xls", vbNormal)
Do Until DIRECTORY = ""
'add filename to listbox
ListBox1.AddItem DIRECTORY
DIRECTORY = Dir()
Loop
End Sub
问题-
代码不断向Listbox2添加工作表
要求-
我希望代码一次显示一个选定工作簿的工作表
所以,如果我单击第一个工作簿,代码将显示与第一个工作簿相关的工作表。如果单击第二个工作簿,代码应该只显示与第二个工作簿相关的工作表,依此类推
要实现这一点,应该更改代码的哪一部分。您需要
ListBox2.Clear
在您的列表框1中,在for each语句前面单击()子项感谢您的代码。它起作用了。如何关闭此帖子