none
Unterschiedliches Verhalten in VB.net und VBA RRS feed

  • Frage

  • Hallo,

    die folgende Prozedur wird ausgeführt wenn ich den Cursor in die Spalte 1 setze, das ist so gewollt. Sie wird aber auch ausgeführt wenn ich vor die Spalte 1 auf die Zeilenüberschrift klicke. Das soll nicht so sein und in VBA reagiert das nicht so.

    Private Sub ThisWorkbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Microsoft.Office.Interop.Excel.Range) Handles Me.SheetSelectionChange

    If  Target.Column = 1 Then

    mein code

    endif

    End Sub

     

    Warum ist das unterschiedlich in VB.net und in VBA und wie kann ich es lösen?

    Viele Grüße

    Emil

     

    Mittwoch, 25. Januar 2012 15:18

Antworten

  • Hallo Viktor,

    vielen Dank für deine Antwort.

    Es scheint so zu sein, dass wenn ich auf die Zeilennummer klicke, der Wert Target.Column = 1 ist (ich hätte <1 erwartet)

     

    Ich habe es jetzt wie folgt gelöst:

    if Left(Target.Address, 2) = "$A" then ....

    Damit funktioniert es

    Viele Grüße

    Emil

    Donnerstag, 26. Januar 2012 10:15

Alle Antworten

  • Hallo Emil,

    >Sie wird aber auch ausgeführt wenn ich vor die Spalte 1 auf die Zeilenüberschrift klicke

    Meinst Du damit, wenn Du die Zeilennummer anklickst (komplette Reihe markieren)? Das scheint wohl ein Verhalten von Excel zu sein. Wenn eine Reihe oder Spalte markiert wird, wird immer die jeweilig erste Zelle markiert. Vieleicht kannst Du ja den Übergabewert zusätzlich auswerten in der Form

    If Target.Column < 1

    return

    endif

    Dazu müsstes Du aber den Übergabewert in der Eventbehandlung mal untersuchen (in Vb.net und VB). Vielleicht kommst Du ja damit weiter.

    Gruß

    Viktor

    Donnerstag, 26. Januar 2012 09:34
  • Hallo Viktor,

    vielen Dank für deine Antwort.

    Es scheint so zu sein, dass wenn ich auf die Zeilennummer klicke, der Wert Target.Column = 1 ist (ich hätte <1 erwartet)

     

    Ich habe es jetzt wie folgt gelöst:

    if Left(Target.Address, 2) = "$A" then ....

    Damit funktioniert es

    Viele Grüße

    Emil

    Donnerstag, 26. Januar 2012 10:15