wie kann ich in VBA einen Bereich über den Befehl cells markieren?
Range(cells(1,2):cells(4,9)) funktioniert nicht.
Gruß
Lars
Sub test()
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Tabelle2").Range(Cells(2, 2), Cells(3, 15)), _
PlotBy _
:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle1"
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlRight
End Sub
VBA-Code: |
Sub DiagrammErstellen() Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("Tabelle2").Range("B2:C15"), PlotBy:=xlColumns ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle1" ActiveChart.HasLegend = True ActiveChart.Legend.Position = xlRight End Sub Gruß Jürgen
AW: Dann schreibe es einfach so!
Lars
Hallo, das will ich ja eben nicht, da die Zellen nicht immer gleich sind. Eigentlich steht bei mir ...Range(cells(StartReihe, StartSpalte), cells(EndeReihe,EndeSpalte)). StartSpalte, StartReihe etc. gebe ich über eine inputbox an. Daher kann ich nicht z.B. A1:C13 angeben. Gruß Lars
AW: Dann schreibe es einfach so!
Erich
Hi Lars, probier mal
Die Punkte vor Cells sorgen dafür, Zellen der Tabelle2 angesprochen werden.
AW: Dann schreibe es einfach so!
Lars
Klappt. Danke. |
Sub test()
Charts.Add
ActiveChart.ChartType = xlColumnClustered
With Sheets("Tabelle2")
ActiveChart.SetSourceData Source:= _
.Range(.Cells(2, 2), .Cells(3, 15)), PlotBy:=xlColumns
End With
ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle1"
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlRight
End Sub
Die Punkte vor Cells sorgen dafür, Zellen der Tabelle2 angesprochen werden.
Wenn da nur Cells steht, werden Zellen des akt. Blattes angesprochen.
Man könnte länglicher auch schrieben:
Sheets("Tabelle2").Range(Sheets("Tabelle2").Cells(2, 2), Sheets("Tabelle2").Cells(3, 15))
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Um in VBA einen Bereich über den Befehl Cells
auszuwählen, kannst Du folgenden Code verwenden:
Sub BereichAuswaehlen()
Dim StartReihe As Long
Dim StartSpalte As Long
Dim EndeReihe As Long
Dim EndeSpalte As Long
' Beispielwerte
StartReihe = 2
StartSpalte = 2
EndeReihe = 3
EndeSpalte = 15
' Bereich auswählen
With Sheets("Tabelle2")
.Range(.Cells(StartReihe, StartSpalte), .Cells(EndeReihe, EndeSpalte)).Select
End With
End Sub
In diesem Beispiel wird der Bereich von Zelle B2 bis Zelle O3 in "Tabelle2" ausgewählt. Achte darauf, dass Du die Werte für StartReihe
, StartSpalte
, EndeReihe
und EndeSpalte
anpassen kannst, um mit Inputboxen zu arbeiten.
Fehler: „Objekt erforderlich“
Cells
Befehl zu spezifizieren.With
-Block einfügst, wie im obigen Beispiel gezeigt.Fehler: „Bereich nicht gefunden“
StartReihe
, StartSpalte
, EndeReihe
und EndeSpalte
, um sicherzustellen, dass sie im gültigen Bereich liegen.Eine andere Möglichkeit ist die Verwendung des Range
Befehls direkt:
Sub BereichMitRange()
Sheets("Tabelle2").Range("B2:O3").Select
End Sub
Diese Methode ist einfacher, wenn Du die genauen Zelladressen kennst, aber weniger flexibel, wenn Du Werte dynamisch anpassen möchtest.
Hier ist ein Beispiel, das zeigt, wie Du mit einer Inputbox die Werte für die Auswahl abfragen kannst:
Sub BereichMitInputbox()
Dim StartReihe As Long
Dim StartSpalte As Long
Dim EndeReihe As Long
Dim EndeSpalte As Long
StartReihe = InputBox("Gib die Startreihe ein:")
StartSpalte = InputBox("Gib die Startspalte ein:")
EndeReihe = InputBox("Gib die Endreihe ein:")
EndeSpalte = InputBox("Gib die Endspalte ein:")
With Sheets("Tabelle2")
.Range(.Cells(StartReihe, StartSpalte), .Cells(EndeReihe, EndeSpalte)).Select
End With
End Sub
Option Explicit
am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler frühzeitig zu erkennen.Application.ScreenUpdating = False
, um die Bildschirmaktualisierung während der Makroausführung zu deaktivieren. Setze es am Ende wieder auf True
, um die Performance zu verbessern.Sub OptimiertesMakro()
Application.ScreenUpdating = False
' Dein Code hier
Application.ScreenUpdating = True
End Sub
1. Wie wähle ich eine bestimmte Zelle in VBA aus?
Du kannst die Methode Cells
verwenden, um eine spezifische Zelle auszuwählen:
Cells(1, 1).Select ' Wählt Zelle A1 aus
2. Was ist der Unterschied zwischen Range
und Cells
?
Range
wird verwendet, um einen Bereich von Zellen anhand ihrer Adressen auszuwählen, während Cells
auf eine spezifische Zelle in einem bestimmten Blatt verweist. Cells
ist nützlich, wenn Du mit Variablen für Zeilen und Spalten arbeitest.
3. Wie kann ich mehrere Zellen gleichzeitig auswählen?
Verwende den Range
Befehl:
Range("A1:C3").Select ' Wählt den Bereich A1 bis C3 aus
Mit diesen Informationen kannst Du effektiv mit dem Befehl Cells
in VBA arbeiten und Bereiche dynamisch auswählen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen