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 展开
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 展开
2个回答
展开全部
请仔细看你的图,下面部分显示c为空值,这样Sheets(2).Range("C" & c)就会出问题,c必须要是一个从1开始的整数才不报错,c为空值的时候,系统就去访问Sheets(2).Range("C"),这明细缺少一个行,所以报错,明白了吗?
另外,图和代码已经不同了,不知道你现在的代码又改为什么样子了,所以谈不上帮你修改好。只是指出你代码里面下面这样语句的错误:
a=c=3
应该改为两行
a=3
c=3
否则c就会是空值
另外,图和代码已经不同了,不知道你现在的代码又改为什么样子了,所以谈不上帮你修改好。只是指出你代码里面下面这样语句的错误:
a=c=3
应该改为两行
a=3
c=3
否则c就会是空值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询