参考用vba中的filedialogselect的工作簿

我正在尝试在Excel中创build一种用户界面,并且需要find一个简单的解决scheme将工作表从选定的工作簿复制到特定的工作簿。 到目前为止,我已经写了下面的代码,但我不知道如何在代码中引用选定的工作簿。 用户需要将许多不同的工作簿(具有不同的名称)复制到使用VBA的工作簿中(称为Storyboard ,名称永不改变)。 现在可以select另一个工作簿,但是我不能在代码中参考该工作簿。

此外,用户将要select的工作簿上有一些macros,如何在打开后禁用它们?

这是目前的代码。

 Sub Storyboard_Ekle() Dim DosyaSec As Office.FileDialog Set DosyaSec = Application.FileDialog(msoFileDialogFilePicker) With DosyaSec .AllowMultiSelect = False .Title = "Lütfen yeni eklenecek Storyboard dosyasini seçiniz." .Filters.Clear .Filters.Add "Excel Macro-Enabled Workbook", "*.xlsm" .Filters.Add "Excel Workbook", "*.xlsx" .Filters.Add "All Files", "*.*" If .Show = True Then YeniSB = .SelectedItems(1) End If Dim YeniStoryBoard As Workbook Dim AnaDosya As Workbook Dim YeniStoryBoard_Sheet As Worksheet Dim AnaDosya_Sheet As Worksheet Application.ScreenUpdating = False Set AnaDosya = ThisWorkbook Application.EnableEvents = False Set YeniStoryBoard = Workbooks.Open(YeniSB) YeniStoryBoard.Worksheets("Storyboard").Copy After:=ThisWorkbook.Worksheets("Kunye") YeniStoryBoard.Close Set YeniStoryBoard_isim = Sheets("Storyboard") YeniStoryBoard_isim.Name = "StoryboardXXYYZZ" Application.EnableEvents = True End With End Sub 

非常感谢。 🙂

我认为你应该使用这个解决scheme来打开后禁用它们

 Application.EnableEvents = False 'disable Events Set YeniStoryBoard = Workbooks.Open(YeniSB) 'open workbook Application.EnableEvents = True 'enable Events 

要确保工作簿的禁用事件,您可以使用其他语句

 YeniStoryBoard.Application.EnableEvents = False 'Do something YeniStoryBoard.Application.EnableEvents = True YeniStoryBoard.Close