
셀 내용에 관계없이 선택한 셀 수를 어떻게 계산합니까?
두 가지 사용 사례가 있습니다. 지금 당장 사용 사례 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
Sheet1에 VBa를 추가했습니다. 또한 참조하십시오MS Office에 VBA를 어떻게 추가하나요?
오버플로 예외가 발생하므로 모든 셀을 선택하지 마세요.
문제는 팝업이 매번 발생한다는 것입니다. 교체하는 것이 좋습니다.
Private Sub Worksheet_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