2016-08-17 1 views
2

Ich schrieb den folgenden Code die Arbeitsmappe zu reinigen und dann leere BlätterKopieren andere Arbeitsmappe aus einem Ordner in verschiedene Blätter in einer Arbeitsmappe

Sub conclusion() 
Dim xWs As Worksheet 
Dim Path As String, Filename As String 



    Application.ScreenUpdating = False 
    Application.DisplayAlerts = False 
    For Each xWs In Application.ActiveWorkbook.Worksheets 
     If xWs.Name <> "Sheet1" And xWs.Name <> "Summary" Then 
      xWs.Delete 
     End If 
    Next 
    Application.DisplayAlerts = True 
    Application.ScreenUpdating = True 
    ' create new sheets 

    Dim MyCell As Range, MyRange As Range 

    Set MyRange = Sheets("Summary").Range("A2") 
    Set MyRange = Range(MyRange, MyRange.End(xlDown)) 

    For Each MyCell In MyRange 
     Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet 
     Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet 
    Next MyCell 

    ' copy the workbooks into the sheets (My question) 

End Sub 

zu erstellen und dann sollte es den Weg von einer Zelle in meinem Fall lesen B2 und sucht alle xls-Dateien in diesem Ordner und kopieren Sie den crated Blätter, deren Namen in range A2

ich schrieb den folgenden

Path= Sheets("Summary").Range("B2").Value ***(it does not read the value of B2, why?)*** 
    Filename = Dir("Path" & "*.xls") 
    Do While Filename <> "" 

***here is my question, how can I write the following: 
COPY THE WORKBOOK 1 INTO SHEET with the name from Cell A2*** 
    Loop 
+0

Was ist das Problem? Was ist die Frage? – PeterT

+0

Hallo Peter, die Frage ist im Code: 1) Path = Sheets ("Zusammenfassung"). Bereich ("B2"). Wert ---> es liest nicht den Wert von B2, warum? => Filename = Dir ("Path" & "* .xls") kann nicht gelesen werden und 2) KOPIERE DAS ARBEITSBLATT 1 IN SHEET mit dem Namen aus Zelle A2 SIEHE bitte den letzten Teil des Codes – maniA

+0

was meinst du mit eine Arbeitsmappe in ein Arbeitsblatt kopieren? Wäre es nicht genau das Gegenteil? – user3598756

Antwort

0

zu beheben der erste Problem Versuch:

With Application.Workbooks("BookName").Sheets("Summary") 
    Path = .Range("B1").Text & "\" & .Range("A2").Text 
End With 

Für die zweiten Ihre Variable Path ist in Anführungszeichen, die es nicht, da es keinen String sein sollte, aber ein String-Variable ist. Nicht sicher, warum Sie dort entweder das Wildcard-Stern hatte ...

Filename = Dir(Path & ".xls") 

Für den letzten Teil Ihrer For Loop fehlt, was es ist, dass Sie fahren wollen durch (dh. Zellen)

For Each MyCell In MyRange.Cells 
    Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet 
    Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet 
Next MyCell 
+0

vielen Dank und Entschuldigung für die Verzögerung das erste Problem ist innerhalb 'mit', aber ich habe immer noch Probleme mit 'Dir' Dateiname ist noch leer! In der Schleife möchte ich die Arbeitsmappen aus dem Pfad in summary.xls AS SHEETS importieren! etwas wie (hier: Importieren Sie die Arbeitsblätter aus der Excel-Datei in eine Zusammenfassung) Für jedes Arbeitsblatt In Arbeitsmappen (fileName) .Worksheets total = Arbeitsmappen ("summary.xls"). Worksheets.count Arbeitsmappen (fileName) .Worksheets (sheet.Name) .Copy _ nach: = Arbeitsmappen ("summary.xls"). Arbeitsblätter (gesamt) Nächstes Blatt – maniA

Verwandte Themen