Подсчитать значение функции с одного листа на другой лист в той же книге - PullRequest
1 голос
/ 08 февраля 2020

Кажется, это было бы относительно просто. Я пытаюсь взять значение / результат функции подсчета для столбца на листе («MASTER» в приведенном ниже коде) и отображать это значение в диапазоне на отдельном листе в той же книге («Размещение») ,

Приведенный ниже код работает, если у меня есть значение, отображаемое на том же листе - например, от MASTER до MASTER, - но когда я пробую код, приведенный ниже, 0 отображается в A1 на «Размещение» вместо 30, что является фактическим значение.

Sub countdataincolums()

Dim master, placement
Set master = ActiveWorkbook.Sheets("MASTER")
Set placement = ActiveWorkbook.Sheets("Placement")

placement.Range("A1").Value = WorksheetFunction.Count(master.Range("E2:E40"))

End Sub

Любой совет с благодарностью!

Ответы [ 2 ]

1 голос
/ 09 февраля 2020

Ваша проблема в следующем: сам код работает! Не самый красивый код, но он должен работать.

  1. Попробуйте изменить объявление переменной следующим образом:

    Dim master As Worksheet, placement As Worksheet

    Это не будет решить вашу проблему, но это может спасти вас от других неприятностей ...

  2. Count функция подсчитывает числа и CountA подсчитывает строки. Даже если вы видите число в ячейке, это строка для VBA , если ее формат Text. Таким образом, если вы введете какие-либо новые числа в этот указанный столбец c, отформатированный как General, Excel будет иметь хорошее предположение, и функция Count будет работать хорошо, за исключением случая, когда указанный столбец c был отформатирован как Text, используя Text to Columns. Если вы хотите посчитать все в указанном диапазоне c, вы можете отформатировать столбец E: E как текст, но с использованием Text to Column (из вкладки данных) и использовать CountA. Он также будет считать числа и строки.

  3. Чтобы вернуться к использованию функции Count, необходимо снова использовать Text to Column (после выбора диапазона), действовать точно так же, , но после second Далее выберите General ...

  4. Только сейчас я заметил ваше замечание о пропущенном нуле для первого ди git. Если вы хотите видеть 23 как 23.0, после изменения формата в General, используя Text to Columns, отформатируйте диапазон как Custom и выберите ###. 0.

1 голос
/ 08 февраля 2020

@ FaneDuru выяснил ... проблема была в форматировании столбца:

Попробуйте изменить Count только на CountA. Если он вернется, как вы, sh, то это явно вопрос формата, даже если вы видите цифры

Изменение на CountA привело к желаемому результату и, вероятно, будет долговременным решением того, что я понадобится именно для этого макроса. Переформатирование данных с помощью: Данные - Текст в столбцы - Далее - Далее, выберите Общие и нажмите 'Fini sh' (для @FaneDuru), а затем с помощью count также сработало, но удалили нули в качестве первого ди git, который мне нужен для этого конкретного набора данных.

По сути, функция count была в замешательстве. Переформатирование не смешивало count, но counta давало желаемый результат.

Если 'counta' больше не дает желаемого результата ... Я вернусь с просьбой о помощи, как преобразовать данные, чтобы count мог работать, а затем преобразовать их обратно.

Еще раз спасибо за помощь всем!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...