3

Как мне подсчитать количество выбранных ячеек, независимо от их содержания?

Есть два варианта использования. Мне нужен вариант использования 2 прямо сейчас:

  1. Когда я делаю один или несколько выборов, я хочу знать, сколько ячеек,
  2. Я хочу выбрать ровно N ячеек, используя несколько вариантов выбора. Я продолжаю делать и изменяю размеры, пока число (которое должно быть где-то на экране) не достигнет N

Для # 1 у меня есть обходной путь: выберите одну ячейку, содержащую текст, скопируйте (чтобы она имела анимированную рамку), затем сделайте свой выбор, нажмите вставить и прочитайте счетчик в строке состояния.

Для # 2 я не знаю обходной путь, который не включает повторение обходного решения # 1 десятки раз и затем нажатие отмены.

3 ответа3

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. Также см. Как добавить VBA в MS Office?

Просто не выбирайте все ячейки, как это происходит через исключение переполнения

Проблема в том, что всплывающее окно будет появляться каждый раз, я бы посоветовал вам заменить

Private Sub Worksheet_SelectionChange(цель ByVal в качестве диапазона)

MsgBox (totalCells)

с

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

Единственный способ сделать то, что вы хотите, - это использовать VBA.

Если бы вы хотели, чтобы функция поместила это в ячейку - что-то вроде этого сработало бы:

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

Вы можете перезапустить функцию, нажав F9, чтобы получить ответ после каждого изменения выбора.

0

Большое спасибо всем. Ваша информация может быть несколько лет назад, но это именно то, что мне было нужно сегодня. В случае, если он генерирует идеи для кого-то еще, вот как я настроил выше для моих нужд. (Конечно, наша цена на самом деле не 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .