这段excel vba 有什么错误啊? If target.Value Like rng.Value And target.Value <> "" Then出错了
发布网友
发布时间:2022-04-23 14:20
我来回答
共2个回答
热心网友
时间:2023-10-18 01:09
Private Sub worksheet_change(ByVal target As Range)
If Application.Intersect(target, Range("c:c")) Is Nothing Or target.Count > 1 Then
Exit Sub
End If
Dim i As Integer, arr As Range
Dim rng As Range
i = 1
Set arr = Worksheets("自动录入").Range("N1").EntireColumn
'arr里面包含了太多的对象,你监视一下arr就可以发现.
'所以下面的for each..in 循环你要指定一下
For Each rng In arr.Cells
On Error GoTo rng100 '标签写错了.
If target.Value Like rng.Value And target.Value <> "" Then
target.Value = rng.Value
Else
Exit Sub
End If
Next
rng100:
End Sub
追问您好,我按照您的提示操作了,但还是不行呀
不会出错,但是也不能返回结果
追答你要学会分析代码,找到问题,
把光标移到代码的For 语句上.按F9设置断点.然后改变C列的任意一个单元格内容,触发该过程.当代码执行到你设置的断点时停止,你可以按F8单步执行代码.监视必要的变量.找出问题的所在.再修改代码,
代码应该没问题.如果你现在在线.百度Hi我 不用追问了.我面对面帮你解决问题
热心网友
时间:2023-10-18 01:09
On Error GoTo 100错误,应该是Rng100;
另外,Worksheets("自动录入").Range("N1").EntireColumn范围太大,可以直接指定或者用End(xlup)方法。例如
Worksheets("自动录入").Range("N1:N"&Range("N1048576").End(xlUP).Row)
你这个比较好像意义不大。If target.Value Like rng.Value And target.Value <> "" Then target.Value = rng.Value
,只要第一个数不同,就退出循环方法了。
热心网友
时间:2023-10-18 01:09
Private Sub worksheet_change(ByVal target As Range)
If Application.Intersect(target, Range("c:c")) Is Nothing Or target.Count > 1 Then
Exit Sub
End If
Dim i As Integer, arr As Range
Dim rng As Range
i = 1
Set arr = Worksheets("自动录入").Range("N1").EntireColumn
'arr里面包含了太多的对象,你监视一下arr就可以发现.
'所以下面的for each..in 循环你要指定一下
For Each rng In arr.Cells
On Error GoTo rng100 '标签写错了.
If target.Value Like rng.Value And target.Value <> "" Then
target.Value = rng.Value
Else
Exit Sub
End If
Next
rng100:
End Sub
追问您好,我按照您的提示操作了,但还是不行呀
不会出错,但是也不能返回结果
追答你要学会分析代码,找到问题,
把光标移到代码的For 语句上.按F9设置断点.然后改变C列的任意一个单元格内容,触发该过程.当代码执行到你设置的断点时停止,你可以按F8单步执行代码.监视必要的变量.找出问题的所在.再修改代码,
代码应该没问题.如果你现在在线.百度Hi我 不用追问了.我面对面帮你解决问题
热心网友
时间:2023-10-18 01:09
On Error GoTo 100错误,应该是Rng100;
另外,Worksheets("自动录入").Range("N1").EntireColumn范围太大,可以直接指定或者用End(xlup)方法。例如
Worksheets("自动录入").Range("N1:N"&Range("N1048576").End(xlUP).Row)
你这个比较好像意义不大。If target.Value Like rng.Value And target.Value <> "" Then target.Value = rng.Value
,只要第一个数不同,就退出循环方法了。