在EXCEL编程中Range作参数提示编译错误,对象使用无效

jinggangshi 2015-03-12 01:58:44

Dim dataRange As range

Set dataRange = Sheets(os).range("A1:" & s_col_end & i_row_end)
MsgBox dataRange.Rows.Count

Dim data_f_row, data_e_row As Integer
data_f_row = GetRowForCellValue("序号", dataRange)




Function GetRowForCellValue(ByVal s As String, ByVal r As range) As Integer '在这行显示错误:编译错误,对象使用无效

Dim findrange As range
If Not s = "" And Not r = Nothing Then
findrange = RngFind(s, r)
GetRowForCellValue = findrange.Row
Else
GetRowForCellValue = 0
End If
End Function




在VBA中要从一个工作表中检索另一个工作表中的数据,出现如题的错误提示:编译错误,对象使用无效。
请帮我看看,谢谢!
...全文
401 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinggangshi 2015-03-17
  • 打赏
  • 举报
回复
引用 4 楼 Chen8013 的回复:
[quote=引用 2 楼 jinggangshi 的回复:] [quote=引用 1 楼 Chen8013 的回复:] If Not s = "" And Not r = Nothing Then 这样写: If Not s = "" And Not r Is Nothing Then
这是其中的一个错误,我已经找到了,但还有一个错误,就是运行到findrange = RngFind(s, r)时,r没有传递过来,出错!!![/quote] 既然能执行到“findrange = RngFind(s, r)”这一句,你说“r没有传递过来”,这可能吗!!! 如果“r没有传递过来”,那这里的if语句中 Not r Is Nothing 就是为False ,只能执行 GetRowForCellValue = 0 这句, 即使 RngFind()函数有问题,也不会有影响、不会造成“错误”。 [/quote] 找到了原因了
findrange = RngFind(s, r)
应该是
set findrange = RngFind(s, r)
舉杯邀明月 2015-03-16
  • 打赏
  • 举报
回复
引用 2 楼 jinggangshi 的回复:
[quote=引用 1 楼 Chen8013 的回复:] If Not s = "" And Not r = Nothing Then 这样写: If Not s = "" And Not r Is Nothing Then
这是其中的一个错误,我已经找到了,但还有一个错误,就是运行到findrange = RngFind(s, r)时,r没有传递过来,出错!!![/quote] 既然能执行到“findrange = RngFind(s, r)”这一句,你说“r没有传递过来”,这可能吗!!! 如果“r没有传递过来”,那这里的if语句中 Not r Is Nothing 就是为False ,只能执行 GetRowForCellValue = 0 这句, 即使 RngFind()函数有问题,也不会有影响、不会造成“错误”。
一如既往哈 2015-03-13
  • 打赏
  • 举报
回复
RngFind部分代码呢?
jinggangshi 2015-03-13
  • 打赏
  • 举报
回复
引用 1 楼 Chen8013 的回复:
If Not s = "" And Not r = Nothing Then 这样写: If Not s = "" And Not r Is Nothing Then
这是其中的一个错误,我已经找到了,但还有一个错误,就是运行到findrange = RngFind(s, r)时,r没有传递过来,出错!!!
舉杯邀明月 2015-03-12
  • 打赏
  • 举报
回复
If Not s = "" And Not r = Nothing Then 这样写: If Not s = "" And Not r Is Nothing Then

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧