
無論單元格內容如何,如何計算所選單元格的數量?
有兩個用例。我現在需要用例 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