
Wie zähle ich die Anzahl der ausgewählten Zellen, unabhängig vom Zellinhalt?
Es gibt zwei Anwendungsfälle. Ich brauche jetzt Anwendungsfall 2:
- Wenn ich eine oder mehrere Auswahlen vornehme, möchte ich wissen, wie viele Zellen,
- Ich möchte genau N Zellen mit Mehrfachauswahl auswählen. Ich treffe und verändere die Auswahl, bis die Zahl (die irgendwo live auf dem Bildschirm angezeigt werden sollte) N erreicht.
Für Nr. 1 habe ich einen Workaround: Wählen Sie eine einzelne Zelle mit Text aus, kopieren Sie sie (sodass sie einen animierten Rahmen hat), treffen Sie dann Ihre Auswahl, drücken Sie Einfügen und lesen Sie die Anzahl in der Statusleiste ab.
Für Nr. 2 kenne ich keinen Workaround, bei dem man nicht Workaround Nr. 1 Dutzende Male wiederholen und dann auf „Rückgängig“ drücken muss.
Antwort1
Um Punkt 1 zu lösen, können Sie dieses VBa verwenden. Das Problem ist, dass Sie nicht erklären, wie Sie dieses Detail sehen möchten!? Also habe ich es als Nachrichtenfeld hinzugefügt.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim totalCells As Long
totalCells = Selection.Cells.Count
MsgBox (totalCells)
End Sub
Ich habe das VBa zu Sheet1 hinzugefügt. Siehe auchWie füge ich VBA in MS Office hinzu?
Wählen Sie einfach nicht alle Zellen aus, da dies zu einer Überlaufausnahme führt
Das Problem ist, dass das Popup jedes Mal auftritt. Ich würde vorschlagen, dass Sie es ersetzen
Private Sub Worksheet_SelectionChange(ByVal Ziel als Bereich)
MsgBox (totalCells)
mit
Range("M1").Value = totalCells ' CHANGE THE RANGE TO THE CELL YOU WANT
Antwort2
Die einzige Möglichkeit, die mir einfällt, um das zu erreichen, was Sie wollen, wäre mit VBA.
Wenn Sie eine Funktion wünschen, um dies in eine Zelle einzufügen, würde etwas wie das Folgende funktionieren:
Public Function cellcount()
Application.Volatile
cellcount = Selection.Cells.count
End Function
Sie können die Funktion durch Drücken von F9 erneut ausführen, um die Antwort nach jeder Auswahländerung zu erhalten.
Antwort3
Vielen Dank an alle. Ihre obigen Informationen sind vielleicht schon ein paar Jahre alt, aber genau das, was ich heute brauchte. Falls sie jemand anderem Ideen geben, hier ist, wie ich das Obige für meine Bedürfnisse angepasst habe. (Unsere Kosten betragen natürlich nicht wirklich 2 $/Stunde. Aber Sie verstehen, was ich meine.) Danke!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const HOURS As Integer = 10 ' hours per cell
Const COST As Integer = 2 * HOURS ' dollars per cell
Const SPACER As String = " "
Dim numCells As Long
numCells = Selection.Cells.Count
If numCells < 2 Then
Application.StatusBar = False
Else
On Error Resume Next ' in case the selection is so large it causes an overflow error
Application.StatusBar = "Cells: " & numCells _
& SPACER & "Hours: " & (numCells * HOURS) _
& SPACER & "Cost: " & FormatCurrency(numCells * COST, 0)
End If
End Sub