Форум по VBA, Excel и Word

VBA, Excel => VBA, макросы в Excel => Тема начата: Rengame113 от 14 февраля 2019, 21:24

Название: Excel VBA Макросы: Вычисление значения функции с последующей записью значения в переменную не записывая его в ячейку.
Отправлено: Rengame113 от 14 февраля 2019, 21:24
Можно ли каким то образом получить значение в переменную используя функции не записывая его в ячейку?
Пример:
В столбце D идут перечисления слов. Используя функцию счётесли посчитать сколько раз повторяется "привет".
Kol = "=СЧЁТЕСЛИ(D:D;"привет")"
Название: Re: Excel VBA Макросы: Вычисление значения функции с последующей записью значения в переменную не записывая его в ячейку.
Отправлено: Администратор от 14 февраля 2019, 22:16
Некоторые ситуации можно решить с помощью объекта 'WorksheetFunction'.

Sub Макрос()
    Dim var
    var = Application.WorksheetFunction.CountIf(Columns("D"), "привет")
End Sub


Варианты написания объекта 'WorksheetFunction':
var = WorksheetFunction.CountIf(Columns("D"), "привет")
var = Application.CountIf(Columns("D"), "привет")
Название: Re: Excel VBA Макросы: Вычисление значения функции с последующей записью значения в переменную не записывая его в ячейку.
Отправлено: Администратор от 14 февраля 2019, 22:24
Ещё есть такой способ. Может быть когда-нибудь будет вам полезен.
В этом способе название функции нужно писать на английском языке.

Sub Макрос()
    Dim var
    var = Application.Evaluate("COUNTIF(D:D,""привет"")")
End Sub


Варианты написания метода 'Evaluate':
var = Evaluate("COUNTIF(D:D,""привет"")")

Здесь со знаком 'равно' перед именем функции (может быть в каких-то случаях потребуется указать):
var = Evaluate("=COUNTIF(D:D,""привет"")")
Название: Re: Excel VBA Макросы: Вычисление значения функции с последующей записью значения в переменную не записывая его в ячейку.
Отправлено: Rengame113 от 15 февраля 2019, 09:05
Спасибо.