2016-10-20 9 views
0

Versuchen, Blätter basierend auf Daten aus einem anderen Arbeitsmappenblatt zu löschen - Durch Vergleichen und Zugreifen auf Daten aus einem anderen Arbeitsmappenblatt, funktioniert es jedoch nicht. Ich konnte es tun, wenn das Blatt in der gleichen Arbeitsmappe war, aber ich möchte das Arbeitsblatt nicht jedes Mal importieren.VBA - Aufruf von einer anderen Arbeitsmappe

Code bisher, Mein Problem ruft von einem anderen Arbeitsblatt.

sub delete() 
    Dim wb As Workbook 
    Dim wks As Worksheet 
    Dim MyRange As Range 
    Dim Cell As Range 
    Set wb = Workbooks("name.xlsx") 
    Set wks = wb.Worksheets("allnames") 
    With wks 
     Set MyRange = wks.Range("A1", .Cells(.Rows.Count, "A").End(xlUp)) 
    End With 
    On Error Resume Next 
    Application.DisplayAlerts = False 
    For Each Cell In MyRange 
     Sheets(Cell.Value).Delete 
    Next Cell 
    Application.DisplayAlerts = True 
    On Error GoTo 0 
End Sub 

Vielen Dank im Voraus

+0

, die Blätter sind Sie bereit zu löschen Arbeitsmappen? – user3598756

Antwort

0

vielleicht sind Sie nach etwas wie folgt aus:

Option Explicit 

Sub delete() 
    Dim toDeleteSheetsWb As Workbook 
    Dim Cell As Range 

    Set toDeleteSheetsWb = Workbooks("WorkbookWithSheetsToDelete.xlsx") '<-- set the workbook whose sheets will be deleted (change "WorkbookWithSheetsToDelete.xlsx" to its actual name) 
    With Workbooks("name.xlsx").Worksheets("allnames") '<-- reference the worksheet from which to read worksheets names to be deleted in "WorkbookWithSheetsToDelete.xlsx" workbook 
     Application.DisplayAlerts = False 
     For Each Cell In .Range("A1", .Cells(.Rows.Count, "A").End(xlUp)) 
      toDeleteSheetsWb.Sheets(Cell.Value).delete 
     Next Cell 
     Application.DisplayAlerts = True 
    End With 
End Sub 
+0

so im Wesentlichen möchte ich Querverweis das aktuelle Arbeitsmappe (1) Blatt mit anderen Arbeitsmappen (2) Blattdaten, wenn der Name des Titels in Arbeitsmappe (2) Spalte (A: A) erscheint, wird es dann Arbeitsmappe (1) Blätter und löschen Sie die Blätter, wenn der Name in der Datenspalte der Arbeitsmappe (2) (A: A) erscheint/übereinstimmt. Danke. – Joe

+0

es scheint mir, Sie müssen nur meinen Code nehmen und 'Workbooks (" WorkbookWithSheetsToDelete.xlsx ")' mit 'Workbooks (1)' und 'Workbooks (" name.xlsx ")' mit 'Workbooks (2)' ersetzen. 1) Arbeitsmappen müssen also _chronologisch_ in der richtigen Reihenfolge geöffnet worden sein, da 'Arbeitsmappen (1)' sich auf die erste geöffnete Arbeitsmappe und 'Arbeitsmappen (2)' auf die 2. geöffnete Arbeitsmappe in der aktuellen Excel-Mappe 2) beziehen. 2) Ein Blatt, das Blattnamen in seiner Spalte "A" hat, wird nach "allnames" benannt (ändern Sie es andernfalls zum tatsächlichen). Gib mir Bescheid – user3598756

Verwandte Themen