工作表名称中的Userform组合列表

时间:2015-08-17 05:44:21

标签: arrays excel-vba arraylist combobox userform

我有一个子调用来打开另一个窗口中的工作簿(使用 GetOpenFilename Workbooks.Open ),然后从一个文件复制整个工作表内容并粘贴它作为宏工作簿(活动工作簿)中的新工作表,然后关闭第二个工作簿而不保存。

我想用ComboBox实现一个UserForm,它将从第二个工作簿的所有工作表中填充(其名称存储为字符串" vFile"。

我假设我需要UserForm_Initialize然后Me.ComboBox1.List = ActiveWorkbook.SheetNames ???

提前致谢。

1 个答案:

答案 0 :(得分:0)

很抱歉在发布后不久就搞清楚了,但我会提供我发现的答案以防其他人需要它,或者可能会建议更好的答案:

Private Sub UserForm_Initialize()
Dim SNarray As Variant
    ReDim SNarray(1 To Sheets.Count)
    For i = 1 To Sheets.Count
        SNarray(i) = ActiveWorkbook.Sheets(i).Name
Debug.Print SNarray(i)
Next
Me.ComboBox1.Clear
Me.ComboBox1.List = SNarray
End Sub

这很简单:

Private Sub CommandButton1_Click()

If ComboBox1.Value = "" Then
MsgBox ("Please select a sheet to import.")
Else
WorkSheetValue = ComboBox1.Value 'Global String Dimension to call later

End If
Unload Me

End Sub