Excel VBA Макросы: Вычисление значения функции с последующей записью значения в переменную не записывая его в ячейку.

Автор Rengame113, 14 февраля 2019, 21:24

Rengame113

Можно ли каким то образом получить значение в переменную используя функции не записывая его в ячейку?
Пример:
В столбце D идут перечисления слов. Используя функцию счётесли посчитать сколько раз повторяется "привет".
Kol = "=СЧЁТЕСЛИ(D:D;"привет")"

Администратор

Некоторые ситуации можно решить с помощью объекта 'WorksheetFunction'.

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


Варианты написания объекта 'WorksheetFunction':
var = WorksheetFunction.CountIf(Columns("D"), "привет")
var = Application.CountIf(Columns("D"), "привет")

Администратор

Ещё есть такой способ. Может быть когда-нибудь будет вам полезен.
В этом способе название функции нужно писать на английском языке.

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


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

Здесь со знаком 'равно' перед именем функции (может быть в каких-то случаях потребуется указать):
var = Evaluate("=COUNTIF(D:D,""привет"")")