Excel VBA下标越界

PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)DimnumAsLongnum=Worksheets(5).... Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim num As Long
num = Worksheets(5).Cells(Rows.Count, 1).End(xlUp).Row - 1
For i = 5 To num
If Worksheets(5).Cells(i, 5).Value <> "" Then
Worksheets(5).Cells(i, 4).Value = Evaluate("VLookup(" & Chr(34) & Worksheets(5).Cells(i, 5).Value & Chr(34) & ", 参数!$A:$B, 2, False)")
End If
If Worksheets(5).Cells(i, 9).Value <> "" Then
Worksheets(5).Cells(i, 8).Value = Evaluate("VLookup(" & Chr(34) & Worksheets(5).Cells(i, 9).Value & Chr(34) & ", 参数!$N$4:$O$10, 2, False)")
Worksheets(5).Cells(i, 7).Value = 0
End If
If Worksheets(5).Cells(i, 11).Value <> "" Then
Worksheets(5).Cells(i, 10).Value = Evaluate("VLookup(" & Chr(34) & Worksheets(5).Cells(i, 11).Value & Chr(34) & ", 参数!$K$4:$L$65, 2, False)")
End If
Next i
End Sub
运行的时候总是提示下标越界,然后第三句代码标黄num = Worksheets(5).Cells(Rows.Count, 1).End(xlUp).Row - 1。。。这是为什么呢?本人vba新手,还烦请详细些~
展开
 我来答
落叶l无情
2015-04-27 · TA获得超过1417个赞
知道大有可为答主
回答量:1372
采纳率:0%
帮助的人:1423万
展开全部
你看看是否有5个或者5个以上工作表,Worksheets(5)表示第5个工作表,如果没有5个或者以上,就会越界
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式