Вы не можете запустить окно сообщения с UDF . Можете ли вы представить, сколько раз вам пришлось бы нажимать «ОК», если бы вы могли, и ваш лист часто пересчитывался?
Вместо этого вы можете использовать оператор debug.print
, и вы можете запустить свой UDF из IDE VBA. проверить значения отладки. Например:
Private Function TestMyUDF()
Dim examplevalue1 as Double
Dim examplevalue2 as Double
MyUDF examplevalue1, examplevalue2
End Function
Не подлежит сомнению, но если ваша ячейка, на которую ссылаются (только для чтения), имеет значение, используйте именованный диапазон (и сделайте его именем книги, а не листа). Давайте назовем его «CheckSumCell» в качестве примера.
Public Function MyUDF(arg1 as Double, arg2 as Double) as Double
If ThisWorkbook.Names("CheckSumCell").Value = 0 Then '<-- assumes single cell
MyUDF = -1
Exit Function
End If
MyUDF= arg1 + arg2
End Function
Это тогда лучше переживет перемещение ячейки (вставка строк или столбцов)! Если вы решите использовать другую ячейку, просто измените определение именованного диапазона, и вам вообще не потребуется редактировать макрос / UDF.