Всякий раз, когда есть вмешательство пользователя, вам придется использовать много обработки ошибок, чтобы избежать возможных ошибок. Я рекомендовал использовать Userform
вставку. Вместо создания пользователя введите имя рабочей книги, используйте UserForm
witm a ComboBox1
(, как показано на рисунке ниже ), заполненный именами всех открытых рабочих книг, чтобы пользователь мог выбрать соответствующая рабочая тетрадь вместо ввода имени
Код
Option Explicit
Private Sub UserForm_Initialize()
Dim wkb As Workbook
Me.Label1.Caption = "Please select the relevant workbook"
With Me.ComboBox1
'~~> Loop thorugh all open workbooks and add
'~~> their name to the Combobox
For Each wkb In Application.Workbooks
.AddItem wkb.Name
Next wkb
End With
End Sub
Private Sub CommandButton1_Click()
If ComboBox1.ListIndex = -1 Then
MsgBox "Please select a wotkbook name and try again"
Exit Sub
End If
Dim wb As Workbook
Set wb = Workbooks(ComboBox1.List(ComboBox1.ListIndex))
With wb
MsgBox .FullName
'~~> Do what you want
End With
End Sub