/ / application defined oder object defined error [beim Übergeben eines Range-Objekts an die Range-Methode] - excel, vba, excel-vba

anwendungsdefinierter oder objektdefinierter Fehler [beim Übergeben eines Range-Objekts an die Range-Methode] - excel, vba, excel-vba

Ich kopiere einen Bereich von einem Arbeitsblatt zum nächsten mit dem folgenden Code:

Private Sub btn_Milestones_Click()
Dim projectref As String
Dim savelocation As String
Dim projectSearchRange As Range
Dim LastRow As Integer
Dim NewWorkbook As Workbook
Dim copy_range As Range

"set search value (porject key - unique)
projectref = cmb_Project.Value

Application.ScreenUpdating = False
Workbooks("Project tracker spreadsheet VBA").Activate
"find the project reference in the tracking spreadsheet
With Sheets("Project Tracking")
Set projectSearchRange = .Range("A:A").Find(projectref, , xlValues, xlWhole)
If Not projectSearchRange Is Nothing Then "<-- verify that find was successful
LastRow = projectSearchRange.Row
"file directory to save the new workbook in
savelocation = .Cells(LastRow, 5).Value
Else "<-- find was unsuccessful
MsgBox "Unable to find " & projectref
Exit Sub
End If
End With
Set copy_range = Range(Cells(LastRow, 11), Cells(LastRow, 34))

Worksheets("Milestone_Template").Range(copy_range).Copy "application defined or object defined error occurs here
Worksheets("Project Tracking").Range("A7:X7").PasteSpecial Paste:=xlPasteValues

Application.CutCopyMode = False
End Sub

Wie der Code zeigt, suche ich nach einemeindeutige Referenznummer im Blatt "Projektverfolgung" und verwenden Sie dann die Zeilennummer, um einen zu kopierenden Bereich zu definieren. Kopieren Sie diesen Bereich und fügen Sie die Werte dieses Bereichs in ein neues Blatt ein. Allerdings erhalte ich den Anwendungsfehler in der im Code angegebenen Zeile. Ich habe dreifach überprüft, um sicherzustellen, dass die Arbeitsblattnamen korrekt sind.

Ich habe das Gefühl, dass es damit zu tun hat, wie ich den Bereich deklariert habe und wie es versucht, die Werte zu kopieren, aber ich kann nicht sehen, wo es diesen Fehler werfen könnte.

Kann jemand sehen, wo ich diesen Fehler bekommen würde, und was ich tun muss, um es zu lösen?

Vielen Dank.

Antworten:

2 für die Antwort № 1

Entschuldigung, dass du verprügelt wurdest, ich habe den Titel der Frage bearbeitet, damit dein spezifisches Problem identifiziert wird. Hier ist eine versuchte Antwort ...

Es ist ziemlich schwierig, ohne die Daten zu debuggen, aber es sieht so aus, als wäre copy_range bereits vom Typ Range, Sie scheinen es auf der Problemlinie zu benutzen, als wäre es ein String Bereich Ausdruck wie "A1: C3". Also habe ich neu geschrieben, du kannst direkt zu mir gehen copy_range.Copy.

Die Kommentatoren haben recht, dass die volle Qualifikation zur Klärung von Problemen beiträgt, also habe ich einige vollständige Qualifikationen gemacht, aber nicht alle.

Versuche dies

Option Explicit

Private Sub btn_Milestones_Click()
Dim projectref As String
Dim savelocation As String
Dim projectSearchRange As Range
Dim LastRow As Integer
Dim NewWorkbook As Workbook
Dim copy_range As Range


"set search value (porject key - unique)
projectref = cmb_Project.Value

Application.ScreenUpdating = False
Workbooks("Project tracker spreadsheet VBA").Activate

Dim wbSource As Excel.Workbook
Set wbSource = Workbooks("Project tracker spreadsheet VBA")

"find the project reference in the tracking spreadsheet
With Sheets("Project Tracking")
Set projectSearchRange = .Range("A:A").Find(projectref, , xlValues, xlWhole)
If Not projectSearchRange Is Nothing Then "<-- verify that find was successful
LastRow = projectSearchRange.Row
"file directory to save the new workbook in
savelocation = .Cells(LastRow, 5).Value
Else "<-- find was unsuccessful
MsgBox "Unable to find " & projectref
Exit Sub
End If
End With

Dim wsMilestoneTempate As Excel.Worksheet
Set wsMilestoneTempate = wbSource.Worksheets("Milestone_Template")

Set copy_range = wsMilestoneTempate.Range(wsMilestoneTempate.Cells(LastRow, 11), wsMilestoneTempate.Cells(LastRow, 34))
copy_range.Copy
""""Worksheets("Milestone_Template").Range(copy_range).Copy "application defined or object defined error occurs here
Worksheets("Project Tracking").Range("A7:X7").PasteSpecial Paste:=xlPasteValues

Application.CutCopyMode = False
End Sub