計算所選單元格的數量

計算所選單元格的數量

無論單元格內容如何,如何計算所選單元格的數量?

有兩個用例。我現在需要用例 2:

  1. 當我進行一項或多項選擇時,我想知道有多少個單元格,
  2. 我想使用多項選擇來精確選擇 N 個單元格。我不斷進行選擇並調整其大小,直到數字(應該顯示在螢幕上的某處)達到 N

對於#1,我有一個解決方法:選擇包含文字的單個單元格,進行複製(因此它具有動畫邊框),然後進行選擇,按貼上,然後讀取狀態欄中的計數。

對於#2,我不知道有一種解決方法不涉及重複解決方法#1 數十次,然後按撤消鍵。

在此輸入影像描述

答案1

要解決第 1 點,您可以使用此 VBa。問題是你沒有解釋你想如何看到這個細節!所以我將其添加為訊息框。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim totalCells As Long
totalCells = Selection.Cells.Count

MsgBox (totalCells)
End Sub

我將 VBa 加入 Sheet1 中。另請參閱如何在 MS Office 中新增 VBA?

只是不要選擇所有單元格,因為它會通過溢出異常

在此輸入影像描述

問題是每次都會彈出,建議你更換

私有子工作表_SelectionChange(ByVal 目標作為範圍)

MsgBox (totalCells)

Range("M1").Value = totalCells ' CHANGE THE RANGE TO THE CELL YOU WANT

答案2

我能想到做你想做的事情的唯一方法就是使用VBA。

如果你想要一個函數將其放入單元格中 - 像這樣的東西會起作用:

Public Function cellcount()
Application.Volatile
cellcount = Selection.Cells.count
End Function

每次選擇變更後,您可以按 F9 重新運行函數以取得答案。

答案3

非常感謝大家。您的上述資訊可能已有幾年歷史,但正是我今天所需要的。如果它為其他人產生了想法,以下是我如何根據我的需要調整上述內容。 (當然,我們的成本實際上並不是 2 美元/小時。但您明白了。) 謝謝!

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

相關內容