运行以下代码时,我始终收到“下标超出范围” 错误。当我将“ Sheet1”更改为实际工作表的名称时,会出现“应用程序定义的或对象定义的” 错误。
这是我收到错误的行:
Worksheets("Sheet1").Range("A" & iCnt, "CK" & iCnt).Formula = src.Worksheets("Sheet1").Range("A" & iCnt, "CK" & iCnt).Formula
此代码的目的是将一行从已关闭的工作簿“复制”到另一个工作簿。 如果该行中的列的值等于“ test”。
任何帮助将不胜感激!
Option Explicit
Private Sub Workbook_Open()
Call ReadDataFromCloseFile
End Sub
Sub ReadDataFromCloseFile()
On Error GoTo Errorcatch
Application.ScreenUpdating = False
Worksheets("myworkbook").Range("A8:CK9999").Clear
Dim src As Workbook
Dim wb As Workbook
Dim iTotalRows As Integer
Dim iCnt As Integer
Set src = Workbooks.Open("mysourceworkbook.xlsm", True, True)
Set wb = ThisWorkbook
iTotalRows = src.Worksheets("sourceworksheet").Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row).Rows.Count
For iCnt = 8 To iTotalRows
If src.Worksheets("sourceworksheet").Range("E" & iCnt).Value = "test" Then
wb.Worksheets("Sheet1").Range("A" & iCnt, "CK" & iCnt).Formula = src.Worksheets("Sheet1").Range("A" & iCnt, "CK" & iCnt).Formula
Else
End If
Next iCnt
src.Close False
Set src = Nothing
Range("A8:CK9999").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo
Application.Calculate
Application.ScreenUpdating = True
MsgBox "Finished!"
Errorcatch:
MsgBox Err.Description, vbInformation
End Sub