VBA-Code zum dynamischen Setzen der X-Achse - excel, vba

Ich habe Probleme mit diesem VBA-Code:Ich möchte, dass der X-Achsen-Crossover der letzte Zellenwert in Spalte A ist (Daten beginnen bei A2 ......), so dass jedes Mal, wenn sich die Streudiagrammdaten ausdehnen, der X-Achsen-Crossover auf den Wert von zurückgesetzt wird die letzte Zelle in der Spalte A. bei rhe

Hier ist mein VBA-Code (hat einen Laufzeitfehler in der Zeile {Selection.CrossesAt = SelRange}):

 Sub Dyna()

Dim SelRange As Range

"This code moves down column A to the end of the list.


" Select cell A2, *first line of data*.
Range("A2").Select
" Set Do loop to stop when an empty cell is reached.
Do Until IsEmpty(ActiveCell)
" Insert your code here.
" Step down 1 row from present location.
ActiveCell.Offset(1, 0).Select
Loop

Set SelRange = Selection


" Create a chart based on the sample source of data.
Charts.Add

With ActiveChart
.ChartType = xlLineMarkersStacked
.SetSourceData Source:=Sheets("Sheet1").Range("A2:A5"), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Sheet1"
End With

" Set the category axis to cross the value axis at value 3.
ActiveChart.Axes(xlValue).Select
Selection.CrossesAt = SelRange
End Sub

Antworten:

0 für die Antwort № 1

Dies sollte das sein wonach Sie suchen:

Sub Dyna()
Dim lngLastRow As Long
"This will find the last row of data in Column A
lngLastRow = Sheets("Sheet1").Cells(2, 1).End(xlDown).Row

Charts.Add

With ActiveChart
.ChartType = xlLineMarkersStacked
"This next line selects all data in column A, from A2 to the last row of column A
.SetSourceData Source:=Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 1), Sheets("Sheet1").Cells(lngLastRow, 1)), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Sheet1"
End With

ActiveChart.Axes(xlValue).Select
"This next line sets the axis crossover point equal to the last data point
Selection.CrossesAt = Sheets("Sheet1").Cells(lngLastRow, 1).Value
End Sub

Wenn Sie den Namen des Blattes ändern, auf dem Sie dieses auf einem anderen als Sheet1 ausführen, stellen Sie sicher, den Code zu ändern, der Sheets ("Sheet1") zu dem neuen Blattname sagt.


Speisekarte