
Bitte helfen Sie mir beim Schreiben der Formel zum Abrufen der Daten aus 300 geschlossenen Arbeitsmappen (und ich möchte keine dieser 300 Arbeitsmappen öffnen). Projektbeschreibung: Es gibt 300 Excel-Zeitnachweise. Sie müssen den Bereich (A1:AC51) aus jedem Zeitnachweis in die Hauptberechnungsarbeitsmappe kopieren, die Lohnabrechnung berechnen und dann das Ergebnis der Lohnabrechnung in ein anderes Arbeitsblatt in derselben Hauptarbeitsmappe kopieren. Der Trick dabei ist, dies zu tun, ohne die 300 Excel-Zeitnachweise zu öffnen. Ich habe den folgenden Code geschrieben, weiß aber nicht, wie ich die Formel zum Abrufen der Daten aus einer geschlossenen Arbeitsmappe schreiben soll. Bitte helfen Sie mir. Nochmals,
- Es gibt 300 Excel-Zeitnachweise (geschlossene Arbeitsmappen), Sheets("EmpInput")
- Es gibt eine Hauptberechnungsarbeitsmappe (offen), Tabellen("Haupt")
- Ziel: Aus jedem Stundenzettel exakt den gleichen Bereich kopieren, Lohn berechnen, Ergebnis in ein anderes Blatt kopieren, Sheets("Ergebnisse")
Vielen Dank im Voraus!
Public Sub GetTimesheetData()
Dim fsoFileObject As New Scripting.FileSystemObject
Dim employeeTimesheet As File
Dim folderPath As String
Dim nextEmpty As Long
folderPath = "C:\GatherTimesheets\" '<<<<< There are 300 excel timesheets in this folder.
For Each employeeTimesheet In fso.folderPath.Files '<<<< Is this correct?
If empoyeeTimesheet.Name Like "*.xls" Then
Sheets("Main").Select
With Range("A1:AC51")
.Formula = "='C:\GatherTimesheets\" & employeeTimesheet '<<<< How to write this formula??
.Value = .Value
End With
nextEmpty = Sheets("Results").Range("D65444").End(xlUp).Row + 1
Sheets("Main").Range("CS1:DF1").Copy
With Sheets("StagingRaw").Range("D" & nextEmpty)
.PasteSpecial xlValues
Application.CutCopyMode = False
End With
End If
Next employeeTimesheet
End Sub
Antwort1
Das Format ist ='C:\Path\[SourceFileName.xlsx]SourceSheetName'!A1:Z9
.
Versuchen Range("A1:AC51").FormulaArray = "='C:\GatherTimesheets\[" & employeeTimesheet & "]EmpInput'!A1:AC51"
.
Weitere Informationen finden Sie unterRange.FormulaArray-Eigenschaft (Excel)UndErstellen eines externen Verweises (Links) auf einen Zellbereich in einer anderen Arbeitsmappe. Auch verwendenOption Explicitum Tippfehler wie zu vermeiden empoyeeTimesheet
.