люди. Я программист-новичок ie, пытаюсь написать макрос, чтобы извлечь несколько строк данных из нескольких рабочих книг и скомпилировать их в новую рабочую книгу, а затем построить их график. Я выяснил, как провести oop через исходные таблицы и еще несколько вещей, но сейчас я застрял в нескольких местах. (Я буду задавать свои разные вопросы в разных темах для ясности.)
Этот вопрос касается ошибки при использовании WorksheetFunction.CountA для получения номера списка элементов, которые я ищу. Я хочу знать номер, чтобы знать, когда я найду все строки поиска. Если я не могу найти их все, я хочу сообщить об этом пользователю и выйти.
Следуя совету по этому вопросу , я написал фрагмент для проверки функции CountA. Я получаю ошибку "Требуется объект". Я рассмотрел несколько тем на эту топи c, но я все еще не понимаю. Вот мой фрагмент кода:
Sub a_test_kpi_count()
Dim kpi_list_count As Integer
Set kpi_list_count = Application.WorksheetFunction.CountA("kpi_list")
MsgBox "There are " & kpi_list_count & "kpis in the list."
End Sub
Когда я запускаю код, редактор останавливается с выделенным «kpi_list_count» ИЛИ «CountA». Что ж, это полезно!
Я должен добавить, что «kpi_list» - это именованный диапазон на рабочем листе, где живет макрос. Тем не менее, я получаю ту же ошибку, когда задаю диапазон таким образом:
Set kpi_list_count = Application.WorksheetFunction.CountA("K3:K7")
Er go, я не думаю, что названный диапазон - моя проблема.
Смещение в правильном направлении будет высоко ценится!
ИЛИ, не стесняйтесь называть меня идиотом и указать на мою очевидную ошибку! ; -)
РЕДАКТИРОВАТЬ:
Спасибо, Бен.
Этот код работает:
Sub a_test_KPI_count()
Dim KPIListCount As Long
KPIListCount = WorksheetFunction.CountA(Sheet1.Range("KPI_list"))
MsgBox "There are " & KPIListCount & "KPIs in the list."
End Sub
Спасибо! Как ни странно, это не работает, когда я использую название листа, кнопки. Названия листов чувствительны к регистру? Я спрашиваю, потому что редактор настаивает на «Кнопках», а не «кнопках».
Еще пара вопросов для моего обучения, если можно, о некоторых из ваших советов:
3, длинный против целого числа. В этом случае я считаю короткий список (<6). Приемлемо ли здесь целое число или лучше придерживаться Long? </p>
Camelcase vs snakecase. Отметил. Это просто предпочтение более опытных программистов? Или есть функциональная разница?
Все ваши ответы были такими, на которые я надеюсь. Урок рыбалки, а не фи sh! Спасибо!