Я хотел бы создать многоцелевую макро-книгу с кучей разных макросов, прикрепленных к различным кнопкам. Затем я хотел бы, чтобы пользователь мог нажать на определенную кнопку, а затем выбрать страницу в другой книге, которую они хотят, чтобы этот макрос работал. Я собираюсь создать запрос окна сообщения, чтобы помочь пользователю динамически выбирать активное окно, которое они хотят, до запуска макроса.Как указать пользователю указать местоположение макроса?
Возможно ли это? Активное окно изменяется каждый раз, когда пользователь нажимает кнопку макроса на первой странице, поэтому я думаю, что какой-то определяющий код вокруг подсказки будет ответом.
Sub hr_test()
Dim fileBrowse As FileDialog
Dim shtNum As Integer
Set fileBrowse = Application.FileDialog(msoFileDialogOpen)
If fileBrowse.Show = True Then wbPath = fileBrowse.SelectedItems(1)
With Workbooks.Open(wbPath)
shtNum = InputBox("Enter the number of the sheet you want to use.")
Sheets(shtNum).Activate
Range("$A$1:$R$6523").AutoFilter Field:=3, Criteria1:= _
"=Global Commercial Services-Global 1", Operator:=xlOr, Criteria2:= _
"=Global Commercial Services-Global 2"
Cells.Select
Cells.EntireColumn.AutoFit
Range("C4135").Select
Columns("M:M").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("B:B").Select
Selection.Cut
Range("M1").Select
ActiveSheet.Paste
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft
Columns("Q:R").Select
Selection.Delete Shift:=xlToLeft
Range("R4130").Select
Columns("B:B").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("D:D").Select
Selection.Cut
Range("B1").Select
ActiveSheet.Paste
Columns("D:D").Select
Selection.Delete Shift:=xlToLeft
End With
End Sub
Почему активное окно меняется? Обычно вы просто должны работать на листе, который пользователь сделал активным. – Rory
Трудно прочитать код, который вы указали. – Davesexcel
, пожалуйста, предоставьте код, который у вас есть, и мы можем помочь вам намного больше, чтобы работать с вашим желаемым решением. –