Я получаю ошибку времени выполнения 9 «Подпись вне диапазона» с моим кодом - PullRequest
0 голосов
/ 23 марта 2019

Я делаю менеджера склада, где я могу добавлять или удалять товары со склада.

Я застрял при копировании существующего диапазона данных в мой менеджер, что я делаю с помощью следующего скрипта VBA. Следует скопировать определенный диапазон данных из рабочей книги в другую рабочую книгу с пользовательской формой.

Я открываю книгу, которую собираюсь скопировать, через путь к файлу, который я уже определил («Tiedosto.Text.»), Это из текстового поля.

Заранее спасибо.

  Private Sub AddFromWorkbook_Click()

  Dim wb As Workbook
  Dim thiswb As Workbook
  Dim i As Long, j As Long
  Dim LastRow As Long

  Set thiswb = ThisWorkbook
  Application.ScreenUpdating = True

  Set wb = Workbooks.Open(Filename:=Tiedosto.Text)

Проблема в этой строке "С wb.Sheets (" Sheet1 ")"

  With wb.Sheets("Sheet1") 
     LastRow = .Cells(.Rows.count, 13).End(xlUp).Row
  End With

  MsgBox (LastRow)

  With thiswb.Sheets("Sheet4")
     j = .Cells(.Rows.count, 3).End(xlUp).Row + 1
  End With

  For i = 2 To LastRow
     With wb.Sheets("Sheet1")
         If .Cells(i, 13).Value = "X" Then
            .Rows(i).Copy Destination:=thiswb.Sheets("Sheet4").Range(3 & j)
            j = j + 1 'Kasvatetaan j.n arvoa sen edetessä.
        End If
     End With
  Next i
End Sub

Так что это должно копировать строку за строкой из рабочей книги в другую. Но это просто возвращает ошибку времени выполнения 9, когда я пытаюсь ее запустить.

1 Ответ

1 голос
/ 23 марта 2019

В Excel имя нового листа зависит от языковой версии MS Office.В результате имя нового листа не всегда «Лист1», это может быть «Список1» или около того, в зависимости от языка.

Учитывая это, я предлагаю заменить строку wb.Sheets("Sheet1") на wb.Sheets(1), который является первым листом рабочей книги и который всегда существует.

...