ThisWorkbook.Sheets ("Sheet1") генерирует ошибку времени выполнения '9' Подстрочный индекс вне диапазона - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь создать пользовательскую форму для ввода новой строки (первая строка после заголовков).

Пользовательская форма содержит 6 полей, из которых 4 представляют собой комбинированный список (списки) и 2 текстовых поля.

Когда я запускаю код, он застревает на: Set ssheet = ThisWorkbook.Sheets("Sheet1")

Private Sub CommandButton1_Click()
    Dim ssheet As Worksheet

    Set ssheet = ThisWorkbook.Sheets("Sheet1")

    nr = ssheet.Cells(Rows.Count, 1).End(x1Up).Row + 1

    ssheet.Cells(nr, 1) = Me.tbNAME
    ssheet.Cells(nr, 2) = Me.cmbStatus
    ssheet.Cells(nr, 3) = Me.cmbFunds
    ssheet.Cells(nr, 4) = Me.cmbDD
    ssheet.Cells(nr, 7) = Me.cmbDistributor
    ssheet.Cells(nr, 8) = Me.tbComments

End Sub

Private Sub UserForm_Initialize()
    Me.tbDate = Date

    For Each blah In [StatusList]
        Me.cmbStatus.AddItem blah
    Next blah

    For Each blah In [FundsList]
        Me.cmbFunds.AddItem blah
    Next blah

    For Each blah In [DDList]
        Me.cmbDD.AddItem blah
    Next blah

    For Each blah In [DistributorList]
        Me.cmbDistributor.AddItem blah
    Next blah

End Sub

1 Ответ

0 голосов
/ 21 ноября 2018

При использовании строки:

Set ssheet = ThisWorkbook.Sheets("Sheet1")

Убедитесь, что на самом деле "Sheet1" - это имя вашего листа в вашей книге

. Для вашего комментария вы можете использовать:

Set ssheet = ThisWorkbook.Sheets(1) или Set ssheet = ThisWorkbook.Sheets("Master Log")

И для следующей строки:

nr = ssheet.Cells(ssheet.Rows.Count, 1).End(xlUp).Row + 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...