2017-07-28 2 views
1

Ich versuche eine Art Benutzeroberfläche in Excel zu erstellen und muss eine einfache Lösung finden, um ein Arbeitsblatt aus einer ausgewählten Arbeitsmappe in eine bestimmte Arbeitsmappe zu kopieren. Bisher habe ich den folgenden Code geschrieben, aber ich weiß nicht, wie ich die ausgewählte Arbeitsmappe im Code referenzieren soll. Benutzer müssen das Arbeitsblatt (es heißt Storyboard und Name ändert sich nie) von vielen verschiedenen Arbeitsmappen (mit anderen Namen) in die Arbeitsmappe mit der VBA kopieren. Jetzt kann eine andere Arbeitsmappe ausgewählt werden, aber ich kann in den Codes nicht auf diese Arbeitsmappe verweisen.Referenz zu einer mit filedialog in vba ausgewählten Arbeitsmappe

Außerdem gibt es einige Makros auf den Arbeitsmappen, die die Benutzer auswählen, wie kann ich sie nach dem Öffnen deaktivieren?

Hier ist der Code so weit;

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 

Vielen Dank. :)

Antwort

1

Ich denke, man sollte diese Lösung, sie zu deaktivieren, nachdem

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

Öffnen disable Fall Arbeitsmappe zu gewährleisten, können Sie zusätzliche Anweisungen verwenden

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

Sie so viel Dank. Dieses Mal gab mir Excel diesen Fehler: "Pfad nicht gefunden: '\ VBA813.tmp' – Bildircin13

+0

@ Bildircin13 Wo Sie neuen Code einfügen? Verwenden Sie Ihren Code, ich kann normal laufen – hung34k

+0

Dieser Code ist in einem neuen Modul. Aber es gibt mir Pfad." Fehler leider – Bildircin13

Verwandte Themen