Meine erste Post hier, aber seit einer Weile erfolgreich Lösungen und Ideen von dieser Website Sourcing jetzt. Danke für die Sammlung von Lösungen und Ideen.Wie ActiveX-Schaltflächen programmgesteuert in VBA hinzugefügt werden, füllen Sie alle Zeilen in einer Spalte
Grundsätzlich habe ich eine Tabellenkalkulationsanwendung, bei der die erste Spalte, Spalte A, in jeder Zelle mit "Active X" -Schaltflächen gefüllt werden muss, die für eine bestimmte Menge durchlaufen werden. Ich habe unten eine solche Arbeitslösung gepostet, die "Formulartasten" und ein Modul verwendet. Dies veranschaulicht, was ich als mein bevorzugtes Beispiel mit funktionierenden Tasten betrachte. Sobald sie betriebsbereit ist, entspricht die Spalte der Schaltflächen den relativen Daten in derselben Zeile, und wenn sie angeklickt wird, werden entsprechende Ordner und Benutzerformen in späteren Entwicklungen geöffnet.
Der zweite Post verwendet die Range-Funktion, enthält aber offensichtlich keine Schaltflächen zum Interagieren mit. Ein Mausklick über diesen Bereich wird jedoch offensichtlich jeden Code aus dem Worksheet_Selection Change-Verfahren aktivieren ... Sorry, nur das Offensichtliche anzugeben!
Was ich versucht habe zu erreichen, ist eine Version des Codes mit "activeX" Command Buttons, aber nachdem ich einige großartige Tutorials studiert und eine Reihe von Programmierungskonzepten ausgegossen habe, scheitere ich immer noch kläglich OLEObjects zu verwenden.
How to add a button programmatically in VBA next to some sheet cell data?
Blatt 1 Verfahren: Sub ColumnA_Buttons()
Dim buttons As Button
Dim rng As Range
Dim LineQty As Variant
Application.ScreenUpdating = False
ActiveSheet.buttons.Delete
LineQty = 5
For i = 1 To LineQty
Set rng = ActiveSheet.Range(Cells(i, 1), Cells(i, 1))
Set buttons = ActiveSheet.buttons.Add(rng.Left, rng.Top, rng.Width, rng.Height)
With buttons
.OnAction = "Buttons"
.Caption = "Line " & i
.Name = "Line " & i
End With
Next i
Application.ScreenUpdating = True
End Sub
Public Click_Button As Variant ' Make Variable Public for Userform1
'
Formular Tastenmodul:
Sub Line_Buttons()
Click_Button = Application.Caller
MsgBox Click_Button & " was Clicked"
UserForm1.Show 'Launch custom userform
End Sub
Und die nächste Option in Betracht gezogen werden, ist ein Bereichserkennung
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' e.g., range(A1:E1) is clicked
If Not Application.Intersect(Target, Range("B2:B12")) Is Nothing Then
MsgBox "You clicked " & Target.Address
End If
End Sub
Kann jemand bitte eine Antwort oder Hilfe geben, um ein funktionierendes Beispiel zu programmieren? –