当输入随机单元格值时,VBA公用函数返回0

当输入随机单元格值时,VBA公用函数返回0,vba,Vba,我使用一个公共函数在不同的工作表上查找范围内的最后一个值 工作表名称由目标和批次组成(基于用户输入的单元格值) 公共函数STlastvalue(目标、批次、rng) 应用程序。挥发性 STlastvalue=工作表(目标和批处理).Range(“J”和工作表函数.CountIf(ActiveSheet.Range(rng.Address),“”和“*”)。值 端函数 该函数工作正常,但当我在使用该函数的工作表中更改一个随机单元格值时,该函数返回0。当我更改目标工作表中的随机单元格值时,将返回正

我使用一个公共函数在不同的工作表上查找范围内的最后一个值

工作表名称由目标和批次组成(基于用户输入的单元格值)

公共函数STlastvalue(目标、批次、rng)
应用程序。挥发性
STlastvalue=工作表(目标和批处理).Range(“J”和工作表函数.CountIf(ActiveSheet.Range(rng.Address),“”和“*”)。值
端函数
该函数工作正常,但当我在使用该函数的工作表中更改一个随机单元格值时,该函数返回0。当我更改目标工作表中的随机单元格值时,将返回正确的值

这是什么原因造成的?它可以修复吗


提前谢谢

countif之后有一个活动表

别担心,伙计们

说“Nevermind”最好的方法是删除这个问题。
 Public Function STlastvalue(target, batch, rng)
 Application.Volatile

 STlastvalue = Worksheets(target & " " & batch).Range("J" & WorksheetFunction.CountIf(ActiveSheet.Range(rng.Address), "<>" & "*")).Value
 End Function