Ich habe diesen Code-Block, der eine Schaltfläche hilft, identifizieren, welche Zeile es ist. Wenn ich jedoch die obige Zeile ausblenden, verweist die Schaltfläche auf diese ausgeblendete Zeile.Button referenziert falsche Zeile in Excel
Zum Beispiel: Wenn Sie die Taste auf Zeile 20 und ich verstecke Reihe 19, die Taste kehrt Zeile klicken 19. Wenn ich beide Reihen verstecken 19 und 18, die Taste kehrt Zeile 18.
Es ist wirklich seltsam. Hier
ist der Block, die ich verwendet, um die Schaltfläche zu erstellen:
Sub AddButtons()
Dim button As button
Application.ScreenUpdating = False
Dim st As Range
Dim sauce As Integer
For sauce = 10 To Range("F" & Rows.Count).End(xlUp).Row Step 1
Set st = ActiveSheet.Range(Cells(sauce, 11), Cells(sauce, 11))
Set button = ActiveSheet.Buttons.Add(st.Left, st.Top, st.Width, st.Height)
With button
.OnAction = "GoToIssue.GoToIssue"
.Caption = "Go To Source"
.Name = "Button" & sauce
End With
Next sauce
Application.ScreenUpdating = True
End Sub
Und hier ist der Block, der die Zeile ID der Schaltfläche zurück, sobald es angeklickt wird:
Sub GoToIssue()
Dim b As Object
Dim myrow As Integer
Dim hunt As String
Set b = ActiveSheet.Buttons(Application.Caller)
With b.TopLeftCell
myrow = .Row
End With
hunt = Worksheets("Dummy").Range("F" & myrow).Value
'MsgBox hunt
End Sub
Ihre Zeit und helfen sind geschätzt.
haben Sie versucht, 'BottomRightCell'? Es scheint, dass alles von der Größe der Schaltfläche und ihrer Ausdehnung abhängt. Ich habe gerade eine Reihe von Tests durchgeführt und es scheint, dass 'BottomRightCell' zuverlässiger ist, wenn 'sichtbare' Zellen angezeigt werden. –