Informationen und Beispiele zum Thema CommandButton | |
---|---|
![]() |
CommandButton-Seite mit Beispielarbeitsmappe aufrufen |
Hallo liebe VBA-Profis,
ich bekomme immer wieder die Fehlermeldung 1004 und das bei der Zeile "Range("C172:C201").Select" etwas nicht stimmt.
Ich bin leider ein absoluter Frischling und weiß nicht genau weiter bei folgendem Code:
Option Explicit
Private Sub CommandButton1_Click() Experiment End Sub Sub Experiment() Experiment Makro Tastenkombination: Strg+p Sheets("Input").Select Range("C172:C201").Select Selection.Copy Sheets("OutputExperimente").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True End Sub Betrifft: AW: VBA Laufzeitfehler 1004
von: Daniel
Geschrieben am: 30.09.2020 21:19:08
HI
wenn sich das Marko "Experiment" ebenfalls im Modul des Tabellenblatts befindet und nicht in einem neu angelegtem Modul1, dann gilt die Regel, dass sich die Zellbezüge (Range, Cells, Columns, Rows) ohne Tabellenblattangabe davor nicht auf das aktive Tabellenblatt beziehen, sondern immer auf das Tabellenblatt des Moduls!
dh dein Range("C172:C201") bezieht sich nicht auf das Blatt "Input", sondern auf das Blatt, in welchem der Button liegt, und du versuchst auf ein einem nicht aktiven Blatt etwas zu selektieren.
mögliche Abhilfen wären:
a) verschiebe das Makro in ein allgemeines Modul (Modul1), dann beziehen sich Range und Cells ohne Blattangabe davor auf das aktive Blatt
b) verwende bewusst ActiveSheetActiveSheet.Range("C172:C201").Selectc) lass das Select des Recorders weg und:
- hänge den Befehl (Copy, Paste) direkt an das Cel oder Range
- referenziere vollständig, dh mit Angabe des Tabellenblatts:Sub Experiment() Experiment Makro Tastenkombination: Strg+p Sheets("Input").Range("C172:C201").Copy Sheets("OutputExperimente").Range("A1").PasteSpecial Paste:=xlPasteAll End SubGruß Daniel
Betrifft: AW: VBA Laufzeitfehler 1004
von: ralf_b
Geschrieben am: 30.09.2020 21:19:48
versuch mal
Sheets("Input").Select
Sheets("Input").Range("C172:C201").Select