有2个列表框 - Listbox1和Listbox2
我有一个代码用一个文件夹中的工作簿填充Listbox1。单击任何工作簿将在Listbox2中显示所有相关工作表。
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添加工作表
要求 -
我希望代码一次显示一个选定工作簿的工作表。
因此,如果我单击第一个工作簿,代码应显示与第一个工作簿相关的工作表。如果我单击第二个工作簿,代码应显示仅与第二个工作簿相关的工作表,依此类推。
为了达到这个目的,应该改变代码的哪一部分。
答案 0 :(得分:0)
你需要一个
ListBox2.Clear
在每个语句之前的ListBox1_Click()子句中