Freigeben über

Laufzeit Fehler '91: Objektvariable oder With-Blockvariable nicht festgelegt

Anonym
2023-09-15T13:59:23+00:00

Ich versuche via VBA bei einem Chart eine dynamische Wert-Achse zu definieren:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$H$7" Then

ActiveChart.Axes(xlValue).MinimumScale = Range("H7").Value 

End If

If Target.Address = "$H$10" Then

ActiveChart.Axes(xlValue).MaximumScale = Range("H10").Value 

End If

End Sub

Aber wenn ich den Wert der Zellen H7 oder H10 ändere, erhalte ich obige Fehlermeldung. Was mich ich falsch?

Microsoft 365 und Office | Excel | Für Zuhause | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare
{count} Stimmen

2 Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2023-09-15T14:34:54+00:00

    Here's the modified code without translation:

    Code:

    Private Sub Worksheet_Change(ByVal Target As Range)

    Dim myChart As ChartObject 
    
    ' Check if there is an active chart on the worksheet 
    
    If ActiveSheet.ChartObjects.Count > 0 Then 
    
        Set myChart = ActiveSheet.ChartObjects(1) ' Assuming there's only one chart on the worksheet 
    
        If Target.Address = "$H$7" Then 
    
            myChart.Chart.Axes(xlValue).MinimumScale = Range("H7").Value 
    
        End If 
    
        If Target.Address = "$H$10" Then 
    
            myChart.Chart.Axes(xlValue).MaximumScale = Range("H10").Value 
    
        End If 
    
    End If 
    

    End Sub

    0 Kommentare Keine Kommentare
  2. Anonym
    2023-09-15T14:35:05+00:00

    Hallo Felix K,

    Vielen Dank, dass Sie sich gemeldet haben. Mein Name ist Leo, ein Benutzer wie Sie. Gerne helfe ich Ihnen bei Ihrem Anliegen weiter.

    Wenn Sie Ihren Code überprüfen, kann es sich um ein Problem mit dem aktiven Diagramm handeln. Ich habe einige Änderungen an Ihrem Code vorgenommen. Ich hoffe, es funktioniert jetzt gut.

    Code:

    Private Sub Worksheet_Change(ByVal Target As Range) myChart als ChartObject dimmen

    ' Überprüfen Sie, ob auf dem Arbeitsblatt ein aktives Diagramm vorhanden ist Wenn ActiveSheet.ChartObjects.Count > 0 dann Set myChart = ActiveSheet.ChartObjects(1) ' Angenommen, es gibt nur ein Diagramm auf dem Arbeitsblatt

    Wenn Target.Address = "$H$7" dann myChart.Chart.Axes(xlValue). MinimumScale = Bereich("H7"). Wert Ende, wenn

    Wenn Target.Address = "$H$10" dann myChart.Chart.Axes(xlValue). MaximumScale = Range("H10"). Wert Ende, wenn Ende, wenn Sub beenden

    Ich hoffe, ich habe eine hilfreiche Lösung für das Problem gefunden! Lass es mich wissen, wenn du weitere Fragen hast.

    Alles Gute

    Löwe

    Diese Antwort ist automatisch übersetzt worden. Daher kann sie grammatikalische Fehler oder fremde Ausdrücke enthalten.

    0 Kommentare Keine Kommentare