列出打开的工作簿减去当前的工作簿

我已经实现了以下代码,列出了ComboBox中所有打开工作簿的名称:

Option Explicit Private Sub ComboBox1_Change() If Me.ComboBox1.ListIndex < 0 Then Me.CommandButton2.Enabled = False Else Me.CommandButton2.Enabled = True End If End Sub Private Sub CommandButton1_Click() Unload Me End Sub Private Sub CommandButton2_Click() MsgBox "Are you sure you want to select " & Me.ComboBox1.BoundValue, vbOKOnly Application.Workbooks(Me.ComboBox1.Value).Activate End Sub Private Sub UserForm_Initialize() Dim myWin As Window Dim wkbk As Workbook With Me.ComboBox1 .Style = fmStyleDropDownList End With With Me.CommandButton1 .Caption = "Cancel" .Enabled = True .Cancel = True .TakeFocusOnClick = False End With With Me.CommandButton2 .Enabled = False .Default = True .Caption = "Activate Workbook" .TakeFocusOnClick = False End With Me.Caption = "Please select a workbook" For Each wkbk In Application.Workbooks For Each myWin In wkbk.Windows If myWin.Visible = True Then Me.ComboBox1.AddItem wkbk.Name Exit For End If Next myWin Next wkbk End Sub 

这个工程很好,但是也列出了列表顶部的当前工作簿。 有没有办法从列表中排除当前的工作簿?

我已经尝试在ComboBox下拉单击事件上执行以下操作,但没有太多的运气。

 ComboBox1.RemoverItem ("Workbook.xls") 

干杯

根据我的评论。

 For Each wkbk In Application.Workbooks If not wkbk.name =thisworkbook.name then For Each myWin In wkbk.Windows If myWin.Visible = True Then Me.ComboBox1.AddItem wkbk.Name Exit For End If Next myWin end if Next wkbk