Anzahl der ausgewählten Zellen zählen

Anzahl der ausgewählten Zellen zählen

Wie zähle ich die Anzahl der ausgewählten Zellen, unabhängig vom Zellinhalt?

Es gibt zwei Anwendungsfälle. Ich brauche jetzt Anwendungsfall 2:

  1. Wenn ich eine oder mehrere Auswahlen vornehme, möchte ich wissen, wie viele Zellen,
  2. 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.

Bildbeschreibung hier eingeben

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

Bildbeschreibung hier eingeben

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

verwandte Informationen