使用.formula

时间:2019-09-17 13:25:10

标签: excel vba

运行以下代码时,我始终收到“下标超出范围” 错误。当我将“ 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

0 个答案:

没有答案