当导入标签中没有文件路径时,此代码会产生错误。因此,我包含了 On Error Resume Next
,以便运行下一个循环。但是,在 On Error Resume Next
之后,该代码继续通过复制操作进行运行,从而破坏了我要复制到的标签。
我发现解决方法是在出现错误时将代码输入下一个循环,而不是继续操作。有人对如何更改错误处理方式有任何意见吗?
Sub ImportBS()
Dim filePath As String
Dim SourceWb As Workbook
Dim TargetWb As Workbook
Dim Cell As Range
Dim i As Integer
Dim k As Integer
Dim Lastrow As Long
'SourceWb - Workbook were data is copied from
'TargetWb - Workbook were data is copied to and links are stored
Application.ScreenUpdating = False
Set TargetWb = Application.Workbooks("APC Refi Tracker.xlsb")
Lastrow = TargetWb.Sheets("Import").Range("F100").End(xlUp).Row - 6
For k = 1 To Lastrow
filePath = TargetWb.Sheets("Import").Range("F" & 6 + k).Value
Set SourceWb = Workbooks.Open(filePath)
On Error Resume Next
Range("A1").CurrentRegion.Copy
TargetWb.Sheets("Balance Sheet Drop").Range("D" & 2 + (k - 1) * 149).PasteSpecial Paste:=xlPasteValues
Range("A1").Copy
Application.CutCopyMode = False
SourceWb.Close
Next
Application.ScreenUpdating = True
Worksheets("Import").Activate
MsgBox "All done!"
End Sub
APC Refi Tracker.xlsb
已经打开。你的代码是在其中还是在第三个工作簿中?你正在使用F100
。在第100行以下是否有任何数据?如果Range("A1").CurrentRegion.Copy
是指刚打开的源工作簿中的ActiveSheet
,那么它的名称或索引是什么? - VBasic2008Range("A1").CurrentRegion.Copy
,它应该类似于SourceWb.Worksheets("Sheet1").Range("A1").CurrentRegion.Copy
。 - VBasic2008