【发布时间】:2018-04-28 12:18:34
【问题描述】:
尝试将所选工作簿中 2 列(“C”和“D”列,从第 13 行开始)的帐号和交易实例复制到我的工作簿,但前提是 D 列中的值大于1. 另外,该列的最后一行标记为“总计”,所以显然我不想包括该行。
到目前为止,这就是我所拥有的:
Private Sub CmdGetData_Click()
Dim wb As Workbook, wb2 As Workbook
Dim NewFile As Variant
Dim ws As Worksheet, ws2 As Worksheet
NewFile = Application.GetOpenFilename("Excel-files (*.xlsx*, *.xlsx*")
If NewFile <> False Then
Set wb = ThisWorkbook
Set wb2 = Workbooks.Open(NewFile)
End If
Set ws = Worksheets("Main")
Set ws2 = wb2.Worksheets("IVR Late Fee Clean Up")
lastrow1 = ws.Cells(Rows.Count, 2).End(xlUp).Row
For i = 13 To lastrow2
lastrow2 = wb2.ws2.Cells(Rows.Count, 3).End(xlUp).Row
If wb2.ws2.Range("C" & i).Value = "Grand Total" Then GoTo Skip
If wb2.ws2.Range("D" & i).Value = "2" Then
wb.ws.Range("B" & lastrow1 + 1).Value = wb2.ws2.Range("C" & i)
wb.ws.Range("C" & lastrow1 + 1).Value = wb2.ws2.Range("D" & i)
End If
Next i
Skip:
End Sub
我遇到的问题是“运行时错误'9':下标超出范围”。
请帮忙!
【问题讨论】:
-
没有完整阅读您的代码,但您正在定义
lastrow2在调用它之后。尝试将该行转移到lastrow1下方。 -
@CMArg:移动了
lastrow2 =行,还是同样的错误。 -
指定错误比“它不起作用”要好得多,但说明错误发生在哪一行会帮助每个人尝试解决问题。
-
@RyszardJędraszyk:错误在原始问题的末尾指定,“运行时错误'9':下标超出范围”。没有引用任何行来指示错误发生的位置。
-
当您在出现错误消息后点击调试按钮时,VBA 编辑器中会突出显示有错误的行。