Определяемая пользователем функция работает нормально в VBA, в то время как при вызове из таблицы Excel отображается ошибка «Значение» - PullRequest
0 голосов
/ 19 июня 2019

Я сделал функцию для вызова из Excel, имеющую два аргумента строкового типа и возвращающую целочисленное значение после подсчета чисел, присутствующих в определенном диапазоне листа Excel.

Эта функция работает правильно при вызове из кода VBA, но показывает ошибку «Значение» при вызове из таблицы Excel

Я изменил тип аргументов на диапазон. Но он все еще показывает «Ошибка значения»

Это работает в обоих случаях, когда я просто возвращаю целочисленное значение, просто присваивая, без использования функций Excel. Но при использовании функций Excel в пользовательском коде функции снова отображается ошибка «Значение».

Public Function countEvent(ByVal name As String, ByVal travelType As String) As Integer

    Dim finalValue, tempValue, i As Integer
    Dim rng As Range

    Dim current As Worksheet
    countEvent = 10
    Set current = ActiveWorkbook.Worksheets("Sheet2")
    Set rng = current.Range("T4:T50000")


    'These two values are pasted in two cells in excel sheet, as these values are further being used by some other formula
    current.Range("T2").Value = name
    current.Range("U2").Value = travelType

    countEvent = Application.WorksheetFunction.Count(rng)

End Function

определено, чтобы возвращать числа в определенном диапазоне листа Excel, но в листе Excel отображается «Ошибка значения»

1 Ответ

1 голос
/ 19 июня 2019

UDF не может изменить форматирование ячейки или рабочей книги или переместить значения на листе.Если вы удалите строки ниже, это должно работать.

current.Range("T2").Value = name
current.Range("U2").Value = travelType

Редактировать :
Для того, что вы хотите сделать, я думаю, вам следует изучить листовые события, например Worksheet_Change

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