2016-07-21 3 views
0

Ich habe mir hier einige Fragen angeschaut, wie man Daten aus Excel-Dateien in andere ziehen kann, aber ich kann es nicht herausfinden. Ich denke, es könnte etwas damit zu tun haben, Dir zu verwenden, um Datei zu definieren, da, wenn ich den Wert der Datei überprüfe, nichts zurückgibt.Daten aus vielen Excel-Dateien alle in eine andere Datei ziehen?

Sub PullFromRunsheets() 


Application.EnableEvents = False 
Application.ScreenUpdating = False 


Dim MyObj As Object, MySource As Object, file As Variant, a As String, columnItertor As Integer 

file = Dir("c:\Desktop\Runsheets\") 
While (file <> "") 
columnIterator = 0 
    If InStr(file, "Runsheet") > 0 Then ''If the string "Runsheet" appears at least once in the filename... 
    '' What to do if the file found contains the string "Runsheet"?   MsgBox "found " & file 
    '' Take the value in cell B7 of the runsheet file and put it in cell A5 of the current file. 
    For rowIterator = 0 To 7 

      a = Workbooks(file).Worksheets("Pacman Runsheet").Cells(7, 2 + rowIterator).Value '' Set "a" = whatever value is in B7, and iterate through that row 
      ActiveWorkbook.Worksheets(Sheet1).Cells(5 + rowIterator, 1).Value = a ''take that value and put it in this column, iterate through. 

    Next rowIterator 

    Exit Sub 




    End If 
    '' columnIterator = columnIterator + 1 (ignore this for now) 

file = Dir 
Wend 

End Sub 

Ich bin im Wesentlichen Daten aus jeder Datei innerhalb eines bestimmten Ordners zu ziehen versuchen, die „Runsheet“ in den Dateinamen hat, und legen Sie diese Daten in die aktuelle Arbeitsmappe, die das Makro in geschrieben wurde. Als ich laufe Beim Code bekomme ich keine Fehler, jedoch passiert überhaupt nichts, weshalb ich nicht weiß, wo ich falsch gelaufen bin.

Vielen Dank!

+0

'Beenden dass entfernen Sub'. Wenn Sie zum ersten Mal eine '* Runsheet *' Datei finden, verlassen Sie den Prozess. Verwenden Sie immer 'F8' zum Debuggen. – cyboashu

+0

In der Tat entfernen Exit Sub – Absinthe

+0

@cyboashu Ich entfernte es aber ich bin immer noch kämpfen, um den Code zu bekommen, tatsächlich etwas zu tun, wenn es läuft. – eob

Antwort

0

haben Spaß mit ihm;)

Sub PullFromRunsheets() 

Application.EnableEvents = False 
Application.ScreenUpdating = False 

Dim currentFile As Variant, baseDirectory, filterKeyword, sourceWorksheetName, sourceRange, targetWorksheetName As String, targetStartRow, targetColumnIterator As Integer 

baseDirectory = "c:\Desktop\Runsheets\" 
filterKeyword = "Runsheet" 
sourceWorksheetName = "Pacman Runsheet" 
sourceRange = "B7:B14" 
targetWorksheetName = "Sheet1" 
targetStartRow = 5 
targetColumnIterator = 1 

currentFile = Dir(baseDirectory) 
While (currentFile <> "") 
    If InStr(currentFile, filterKeyword) > 0 Then 
    Workbooks.Open baseDirectory + currentFile 
     Workbooks(currentFile).Worksheets(sourceWorksheetName).Range(sourceRange).Copy 
     ThisWorkbook.Worksheets(targetWorksheetName).Cells(targetStartRow, targetColumnIterator).PasteSpecial xlPasteAll 
    Workbooks(currentFile).Close 
    targetColumnIterator = targetColumnIterator + 1 
    End If 
    currentFile = Dir 
Wend 

End Sub 
Verwandte Themen