Vba 下标超出范围,即使我指定了范围和工作表
我收到代码中最后一段逻辑的下标超出范围错误:Vba 下标超出范围,即使我指定了范围和工作表,vba,Vba,我收到代码中最后一段逻辑的下标超出范围错误: Sub Extract_Bank_Amount() Dim wb As Workbook Dim ws As Worksheet Dim rng1 As Range, rng2 As Range, lastcell As Range Dim lRow As Long, i As Long Set wb = ActiveWorkbook Set ws = wb.Sheets("Bank Statement") Set rng1 = wb.Shee
Sub Extract_Bank_Amount()
Dim wb As Workbook
Dim ws As Worksheet
Dim rng1 As Range, rng2 As Range, lastcell As Range
Dim lRow As Long, i As Long
Set wb = ActiveWorkbook
Set ws = wb.Sheets("Bank Statement")
Set rng1 = wb.Sheets("Payroll Journal").Range("B1")
Set rng2 = wb.Sheets("Payroll Journal").Range("B3")
Set lastcell = wb.Sheets("Proof").Range("C3" & Rows.Count).End(xlUp).Offset(1)
wb.Sheets("Bank Statement").Activate
With ws
lRow = .Range("B" & .Rows.Count).End(xlUp).Row
For i = 2 To lRow
If .Range("A" & i).Value = rng1 Then
If .Range("C" & i).Value = rng2 Then
lastcell = .Range("B" & i).Value
End If
End If
Next i
End With
End Sub
这一行的下标超出了范围:
Set ws = wb.Sheets("Bank Statement")
谢谢你的帮助,谢谢 您的“银行对账单”选项卡的名称末尾似乎有一个空格
i、 e
“银行对账单”
vs
“银行对账单”
我已经测试了你的代码,它工作没有问题,所以这可能是答案
编辑:
要查找C列中最后一个单元格+1作为“分配给范围”变量,请更改以下内容:
Set lastcell=wb.Sheets(“Proof”).Range(“C3”和Rows.Count).End(xlUp).Offset(1)
到
Set lastcell=wb.Sheets(“校对”).Range(“C5000”).End(xlUp)。偏移量(1)
只要您预期的最后一个单元格低于5000,这应该可以工作。您的
范围()。如果您希望有10行数据Range(“A50”)
,则可以,但如果您有10000行,则需要Range(“a1001”)
,以此类推。是。搜索工作簿。名称
,类似于
运算符和通配符。在你做了具体问题和代码示例的研究后回来。我尝试删除工作表名称中的空格,并相应地编辑我的代码。但是,现在我在第行收到了相同的错误:Set lastcell=wb.Sheets(“Proof”).Range(“C3”和Rows.Count)。End(xlUp)。Offset(1)@yossup是您期望的lastcell=C列中的最后一行(+1)?@yossup我用一个解决方案编辑了我的原始答案。哈,原来我的Proof选项卡有一个额外的空间!谢谢你,汉森