Runtime erro 1004

  1. 4 minggu lalu
    Di sunting 4 minggu lalu oleh raibarong

    Selamat siang suhu suhu saya bikin vba di excel untuk save ke pdf dan copy paste ke 2 sheet berbeda secara bersamaan, sebelumnya tidak ada masalah, namun sekarang ada error -image- .
    runtime error '1004': application-defined or object-defined error

    apakah karena rownya sudah mencapai belasan ribu?
    mohon pencerahannya suhu sekalian

    Private Sub SAVE_Click()

    Application.ScreenUpdating = False
    vFN = Application.GetSaveAsFilename( _
    FileFilter:="Portable Document (*.pdf), *.pdf", _
    Title:="Simpan dokumen sebagai...", _
    InitialFileName:=ThisWorkbook.Path & "\namadokumen.pdf")

    If vFN <> False Then
    Selection.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=vFN, _
    OpenAfterPublish:=True
    End If

    Range(Range("A3"), Range("A3000").End(xlUp)).Select
    Selection.Copy
    With Sheets("REKAP").Range("A" & Rows.Count).End(xlUp).Offset(3)
    .PasteSpecial (xlPasteAll)
    .PasteSpecial (xlPasteValuesAndNumberFormats)
    End With
    With Sheets("REKAP 22").Range("A" & Rows.Count).End(xlUp).Offset(3)
    .PasteSpecial (xlPasteValuesAndNumberFormats)
    End With

    Range("D1:F1").ClearContents
    Range("D2:F2").ClearContents
    Range("c12:c1000").ClearContents
    Range("A1").Select

    End Sub

  2. Caton

    Jun 3 Terverifikasi Indonesia + 18.633 Poin

    @raibarong ...

    Baris ke berapa atau baris yang mana errornya mas?

  3. @Caton

    With Sheets("REKAP 22").Range("A" & Rows.Count).End(xlUp).Offset(3)

    yang ini mas

  4. Caton

    Jun 4 Terverifikasi Indonesia + 18.633 Poin
    Di sunting 4 minggu lalu oleh Caton

    @raibarong ...

    Kalau script tersebut digunakan di Excel 2003, dengan total hanya ada 65.000 baris, mungkin saja masalahnya di jumlah barisnya. Tapi saya pikir sepertinya bukan itu masalahnya (kecuali data yang ditempelkan memang sudah melebih 65.000 baris)...

    Karena, pada baris script ini :

    With Sheets("REKAP").Range("A" & Rows.Count).End(xlUp).Offset(3)
    .PasteSpecial (xlPasteAll)
    .PasteSpecial (xlPasteValuesAndNumberFormats)
    End With

    sepertinya tidak bermasalah? Mungkin bisa dicoba memeriksa kembali apakah baris yang disalin masih dalam mode Copy. Caranya, saat error terjadi, lihat di sheet dimana data disalin apakah masih menunjukkan mode penyalinan (Copy). Biasanya ditunjukkan dengan tanda garis seleksi yang berkedip. Kalau memang itu masalahnya, cukup sisipkan kembali baris untuk menyalin data sebelum script yang bermasalah tadi. Mungkin seperti :

    Private Sub SAVE_Click()
    
    Application.ScreenUpdating = False
    vFN = Application.GetSaveAsFilename( _
    FileFilter:="Portable Document (*.pdf), *.pdf", _
    Title:="Simpan dokumen sebagai...", _
    InitialFileName:=ThisWorkbook.Path & "\namadokumen.pdf")
    
    If vFN <> False Then
    Selection.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=vFN, _
    OpenAfterPublish:=True
    End If
    
    Range(Range("A3"), Range("A3000").End(xlUp)).Select
    Selection.Copy
    With Sheets("REKAP").Range("A" & Rows.Count).End(xlUp).Offset(3)
    .PasteSpecial (xlPasteAll)
    .PasteSpecial (xlPasteValuesAndNumberFormats)
    End With
    
    '+---
    Range(Range("A3"), Range("A3000").End(xlUp)).Select
    Selection.Copy
    '+---
    
    With Sheets("REKAP 22").Range("A" & Rows.Count).End(xlUp).Offset(3)
    .PasteSpecial (xlPasteValuesAndNumberFormats)
    End With
    
    Range("D1:F1").ClearContents
    Range("D2:F2").ClearContents
    Range("c12:c1000").ClearContents
    Range("A1").Select
    
    End Sub

    Saran saya, sebaiknya baris ini :

    Range(Range("A3"), Range("A3000").End(xlUp)).Select
    Selection.Copy

    diubah menjadi:

    NamaSheet.Range(Range("A3"), Range("A3000").End(xlUp)).Copy

    dimana NamaSheet diganti dengan nama sheet aktualnya (misalkan Sheet1).

    Mungkin demikian masalahnya. Kalau bukan itu, berikan saja contohnya biar bisa dipelajari.

    Demikian.

 

atau Mendaftar untuk ikut berdiskusi!