VBA Runtime Error 1004 "Programdefineret eller objektdefineret fejl" ved valg af område
Jeg har et problem med en fejl 1004 "Programdefineret eller objektdefineret fejl" når jeg vælger et område.
Jeg kan stadig vælge rækker (dvs. Rows("21:21").select
) og vælge intervaller i andre ark i den samme projektmappe. Jeg tror ikke, at fejlen ligger i koden. Måske er det en eller anden indstilling, som jeg ikke er klar over?
Jeg har brugt præcis den samme kode mange gange før, men af en eller anden grund kan jeg ikke få den til at fungere i denne sub (jeg har kommenteret hvor fejlen opstår)...
Sub CopySheet1_to_PasteSheet2()
Dim CLastFundRow As Integer
Dim CFirstBlankRow As Integer
'Finds last row of content
Windows("Excel.xlsm").Activate
Sheets("Sheet1").Activate
Range("C21").Select
'>>>Error 1004 "Application-defined or Object-defined error" Occurs
Selection.End(xlDown).Select
CLastFundRow = ActiveCell.Row
'Finds first row without content
CFirstBlankRow = CLastFundRow + 1
'Copy Data
Range("A21:C" & CLastFundRow).Select
Selection.Copy
'Paste Data Values
Sheets("PalTrakExport PortfolioAIdName").Select
Range("A21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Bring back to top of sheet for consistancy
Range("A21").Select
Range("A1").Select
End Sub
Jeg har brug for at blive helt fancy i min kopiering, da mængden af rækker vil ændre sig ofte. Igen, nedenstående kode er blevet brugt før uden fejl... men ikke i dette tilfælde.
Dim CLastFundRow As Integer
Dim CFirstBlankRow As Integer
'Finds last row of content
Windows("Excel.xlsm").Activate
Sheets("Sheet1").Activate
Range("C21").Select
'>>>Error 1004 "Application-defined or Object-defined error" Occurs
Selection.End(xlDown).Select
CLastFundRow = ActiveCell.Row
'Finds first row without content
CFirstBlankRow = CLastFundRow + 1
23
3
Måske ligger din kode bag Ark1, så når du skifter fokus til Ark2, kan objekterne ikke findes? Hvis det er tilfældet, kan det måske hjælpe, hvis du blot angiver dit målarbejdsark:
Jeg'er ikke særlig bekendt med hvordan Select virker, da jeg prøver at undgå det så vidt muligt :-). Du kan definere og manipulere intervaller uden at markere dem. Det er også en god idé at være eksplicit omkring alt hvad du refererer. På den måde mister du ikke overblikket, hvis du går fra et ark eller en arbejdsbog til en anden. Prøv dette:
Det er lidt sent, men kan være nyttigt som fremtidig reference. Jeg havde lige haft det samme problem, og jeg tror det er fordi makroen er registreret på regnearksniveau. Højreklik på modulknuden i VBA-projektvinduet, klik på insert module og indsæt så din makro i det nye modul (sørg for at slette den, der er registreret på regnearksniveau).
Jeg håber, at dette hjælper.
Nogle operationer i Excel er begrænset af den tilgængelige hukommelse. Hvis du gentager den samme proces igen og igen, kan det medføre et hukommelsesoverløb, og Excel vil ikke længere kunne gentage den. Dette skete for mig, da jeg forsøgte at oprette flere ark i samme arbejdsbog.