excel宏vba代码

Functiongetlastusedrow(rgAsRange)AsLongDimlmaxrowsAsLonglmaxrows=ThisWorkbook.Workshe... Function getlastusedrow(rg As Range) As Long
Dim lmaxrows As Long
lmaxrows = ThisWorkbook.Worksheets(1).Rows.Count
If IsEmpty(rg.Parent.Cells(lmaxrows, rg.Column)) Then
getlastusedrow = rg.Parent.Cells(lmaxrows, rg.Column).End(xlUp).Row
Else
getlastusedrow = rg.Parent.Cells(lmaxrows, rg.Column).Row
End If
End Function
公司电脑一运行到这就报错
(If IsEmpty(rg.Parent.Cells(lmaxrows, rg.Column)) Then)
是什么原因呢。
展开
 我来答
mzz9060
2018-09-06 · TA获得超过1326个赞
知道小有建树答主
回答量:773
采纳率:84%
帮助的人:198万
展开全部
答:可能是包含宏的工作簿的文件格式是:*.xlsm(07版本及以上),而公司电脑里调用该函数的工作簿是:*.xls(03及以前格式)。造成最大行数不一致错误。
可以修改这句:lmaxrows = ThisWorkbook.Worksheets(1).Rows.Count
为:lmaxrows = rg.Parent.Rows.Count
自适应目标单元格所在的工作表的最大行数,而非固定值。
追问
还真是,谢了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式