VBA 方法range作用于对象_worksheet时失败,怎么解决?

这是用if来运行的,顺利通过。后面改为selectcase后就不通过。Sub镇()Dimi,jAsIntegerSheets(2).Range("n2")="镇"j=3F... 这是用if来运行的,顺利通过。后面改为select case 后就不通过。
Sub 镇()
Dim i, j As Integer
Sheets(2).Range("n2") = "镇"
j = 3 For i = 3 To 226
If Sheets(1).Range("l" & i) = "镇" Then
If Sheets(1).Range("j" & i) <> Sheets(1).Range("j" & i - 1) Then If Sheets(2).Range("n" & j) <> "" Then
j = j + 1
End If
Sheets(2).Range("n" & j) = Sheets(1).Range("j" & i)
End If
End If
Next
End Sub
Sub 分单位统计()
Dim i,a, c, As Integer, dde As String
a=c=3
For i = 3 To 226
dde = Sheets(1).Range("L" & i).Value
Select Case dde
Case "镇"
If Sheets(1).Range("J" & i).Value <> Sheets(1).Range("J" & i - 1).Value Then
Sheets(2).Range("C" & c) = Sheets(1).Range("J" & i) 这句提示:函数或定义错误,如果sheets(2)写成sheet2,提示为方法range作用于对象_worksheet时失败
c = c + 1
End If
End Select'
End If
Next
End Sub
展开
 我来答
阳光上的桥
2019-03-26 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
请仔细看你的图,下面部分显示c为空值,这样Sheets(2).Range("C" & c)就会出问题,c必须要是一个从1开始的整数才不报错,c为空值的时候,系统就去访问Sheets(2).Range("C"),这明细缺少一个行,所以报错,明白了吗?
另外,图和代码已经不同了,不知道你现在的代码又改为什么样子了,所以谈不上帮你修改好。只是指出你代码里面下面这样语句的错误:
a=c=3
应该改为两行
a=3
c=3
否则c就会是空值
百度网友3b6fc6d
2019-03-25 · TA获得超过384个赞
知道小有建树答主
回答量:816
采纳率:0%
帮助的人:478万
展开全部
VBA里默认是Value属性,前面加上set试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式