Excel 如何在不同但处于活动状态的工作表上使用worksheet function.max?
当userform启动时,尝试从不同工作表的A列中获取“最大”值Excel 如何在不同但处于活动状态的工作表上使用worksheet function.max?,excel,vba,Excel,Vba,当userform启动时,尝试从不同工作表的A列中获取“最大”值 Private Sub UserForm_Initialize() Dim newTaskId As Integer newTaskId = Application.WorksheetFunction.Max(Worksheets("baseOfData").Columns("A")) + 1 Me.txtTaskID.Value = newTaskId End Sub 但是,这只会引发我:运行时错误“-2147352571
Private Sub UserForm_Initialize()
Dim newTaskId As Integer
newTaskId = Application.WorksheetFunction.Max(Worksheets("baseOfData").Columns("A")) + 1
Me.txtTaskID.Value = newTaskId
End Sub
但是,这只会引发我:运行时错误“-2147352571(800200005)
无法设置value属性。类型不匹配
也试过
newTaskId = Application.WorksheetFunction.Max(Worksheets("baseOfData").ListObjects(1).ListColumns(1))
但是我无法获得工作表函数
有什么建议吗 这是一个奇怪的完全不相关的错误原因 在同一个工作簿上,我有另一个函数,它甚至不在同一个子系统中。 但是一旦用户表单启动它,就会导致此错误 我通过重新开始并使用一个新的用户表单发现了这一点,在我最初的帖子中只有这个。这两种方法现在都起作用了
谢谢大家的意见和建议 尝试删除变量delcaration,因为它尝试输入数字以外的值,然后检查它是什么:)我刚刚尝试了MsgBox Application.WorksheetFunction.Max(Worksheets(“baseOfData”).Columns(“A”))响应是数字/int 5,所以你是对的,它一定是变量。你不应该得到
无法设置value属性。在第一个代码中键入不匹配的
。可能是和溢出,但不是类型不匹配
。工作表中有什么类型的数据?我猜错误可能在Me.txtaskid.Value=newTaskId
?您是否有任何txtTaskID\u Change()
事件?无更改()几乎是空白工作簿,从中获取值的表是一个普通表,该列中仅包含数字值,我还在工作表中进行了检查。该工作表仅定义为数字,它是通用的。