Ich habe mehrere Dateien in einem Ordner mit der Spalte "Teilenummer", aber nicht alle befinden sich in derselben Spaltennummer. Die Liste muss auch nicht in derselben Zeile beginnen.
Ich suche also zuerst nach der Zeichenfolge "Teilenummer" und kopiere dann ihre Adresse als Anfang des Bereichs, den ich kopieren möchte.
Die Spalte "Teilenummer" enthält einige Leerzeichen in einigen Elementen, sodass ich die letzte Zeile nicht mit .End (xlDown) durchsuchen konnte.
Also benutze ich die Spalte "Menge", um die letzte Zeile zu finden und die Zeilennummer zu kopieren.
Ich habe die Zelle, in der der Bereich beginnt, die Spalten- und die Zeilennummer, in der der Bereich enden soll. Ich erhalte jedoch den Fehler "Anwendungsdefinierter oder objektdefinierter Fehler".
Das Makro ist noch nicht fertig, aber ich kann nicht weitermachen, bis ich das gelöst habe. Das habe ich bekommen:
Option Explicit
Sub mergeworkbooks()
Dim path As String
Dim filename As String
Dim wbk As Workbook
Dim wks As Worksheet
Dim lastrow As Long
Dim lastcolumn As Long
Dim rangestart As String
Dim lastcol As Long
Dim rangefinish As String
Dim activesht As String
path = "D:\RubenBK\TEST\"
filename = Dir(path)
Do While filename <> ""
Set wbk = Workbooks.Open(path & filename)
For Each wks In Worksheets
If Not wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False) Is Nothing Then
wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False).Activate
rangestart = wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False).Address
lastcolumn = wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False).Column
lastrow = wks.UsedRange.Find("qty", lookat:=xlPart, MatchCase:=False).End(xlDown).row
rangefinish = Cells(lastrow, lastcolumn).Address(xlA1)
activesht = ActiveSheet.Name
'AND HERE IS WHERE I GET THE ERROR, THE Range("rangestart: rangefinish") PART:
wbk.Sheets(activesht).Range("rangestart: rangefinish").Copy Destination:=ThisWorkbook.Sheets("Sheet1").Range("A10")
End If
wbk.Close
Next
filename = Dir
Loop
End Sub
Irgendein Vorschlag?
rangestart
undrangefinish
definiert als wann kommst du auf den fehler? Das.address
ist höchstwahrscheinlich aufhören zu arbeiten. Auch dierange("var1: var2")
Möglicherweise liegt ein Fehler vorAntworten:
Dein Problem ist, dass du dein hast Rangestart und rangefinish eingewickelt in die Anführungszeichen.
Versuchen Sie, sie außerhalb der Anführungszeichen zu verschieben, und es sollte funktionieren.
quelle