Excel VBA列表问题

我在工作表上用下面的代码创build了一个命令button。 我的excel文件有80多张。 现在这个列表中的问题部分是由于一个大名单。 (仅前40项)

我怎样才能把这个列表分成2或3个垂直列表?

Private Sub CommandButton1_Click() Dim myList As String Dim mySht For i = 1 To ActiveWorkbook.Sheets.Count myList = myList & i & " - " & ActiveWorkbook.Sheets(i).Name & " " & vbCr Next i mySht = InputBox("Select Sheet to go to." & vbCr & myList) If mySht = "" Then 'MsgBox "User pressed CANCEL or empty string is submitted" Exit Sub End If If Not IsNumeric(mySht) Or mySht < 1 Or mySht > ActiveWorkbook.Sheets.Count Then MsgBox "Wrong input" Exit Sub End If ActiveWorkbook.Sheets(CInt(mySht)).Select End Sub 

您正在创build一个列表,并在没有足够空间的提示中input它。 我build议创build一个自定义窗体,如下所示:

转到VBA屏幕

插入用户表单

添加一个列表框

添加一个命令button

在Userform模块中input此代码

 Option Explicit Private Sub UserForm_Initialize() Dim i As Long For i = 1 To ActiveWorkbook.Sheets.Count Me.ListBox1.AddItem ActiveWorkbook.Sheets(i).Name Next i End Sub Private Sub CommandButton1_Click() Dim myStr As String myStr = Me.ListBox1 ActiveWorkbook.Sheets(myStr).Activate Me.Hide End Sub 

然后让你的命令button打开用户窗体