Błąd VBA programu Excel 9 subskrybuje poza zakresem

0

Zamykając skoroszyt otrzymuję:

Run-time error 9 subscript out of range

To jest kod VBA:

Set wbk = Workbooks.Open(path & filename)
  wbk.Sheets(sheetname).Range("b6").Resize(row_count, col_count).Copy
  ThisWorkbook.Sheets(sheetname).Range("b6").Resize(1, col_count).PasteSpecial xlPasteValues
wbk.close

Czy ktoś może mi pomóc wydostać się z tego błędu?

użytkownik578784
źródło
Czy to zadziała? google.co.in/…
manjesh23

Odpowiedzi:

1

Ten rodzaj błędu wskazuje, że odwołujesz się do nieistniejącej komórki lub zakresu . W twoim przypadku myślę, że problem nie zamyka się, ale w jednej z następujących linii:

  wbk.Sheets(sheetname).Range("b6").Resize(row_count, col_count).Copy
  ThisWorkbook.Sheets(sheetname).Range("b6").Resize(1, col_count).PasteSpecial xlPasteValues

Sprawdź, czy sheetname, row_counti col_countzawierać poprawną wartość.

jcbermu
źródło
0

Dlaczego używasz metody „.Resize” w paście? Widzę, że próbujesz skopiować zakres, powiedzmy komórek 3x4 i wkleić je do komórek 1x4. To nie jest możliwe. Spróbuj bez zmiany rozmiaru pasty:

Set wbk = Workbooks.Open(path & filename)
  wbk.Sheets(sheetname).Range("b6").Resize(row_count, col_count).Copy
  ThisWorkbook.Sheets(sheetname).Range("b6").PasteSpecial xlPasteValues
wbk.close

W innym poście widziałem sposób kopiowania danych z wielu arkuszy do jednego:

Public Sub CopyMultipleData()
    Dim ws  As Worksheet, LR1 As Long, LR2 As Long
    Application.ScreenUpdating = False
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "Master" Then
            LR1 = Sheets("Master").Range("A" & Rows.Count).End(xlUp).row + 1
            LR2 = ws.Range("D" & Rows.Count).End(xlUp).row
            ws.Range("A1:J" & LR2).Copy Destination:=Sheets("Master").Range("A" & LR1)
        End If
    Next ws
    Application.ScreenUpdating = True
End Sub
Shai Alon
źródło
Muszę skopiować dane z wielu arkuszy i wkleić je w jednym arkuszu.
user578784,
podczas uruchamiania kodu iam pojawia się błąd czasu wykonywania tylko dla kilku skoroszytów, reszta wszystkie skoroszyty zamykają się poprawnie.
user578784
Zaktualizowano wpis
Shai Alon
I zakładasz, że nie wiesz, ile danych w każdym skoroszycie?
Shai Alon
każdy zeszyt ćwiczeń ma cztery arkusze i nie wiemy, pod którym arkuszem uzyskamy dane i ile wierszy.
user578784