2016-03-01 3 views
0

У меня есть форма, которая откроется на листе 1, где пользователи могут вводить всю информацию. Я бы хотел, чтобы информация была заполнена на листе8, но это может мне помочь. Я получаю сообщение об ошибке вне диапазона.Ошибка 9 Форма VBA заполняет другой лист

Заранее благодарен!

Private Sub EnterInfo_Click() 

    Dim LastRow As Range 
    Dim DataTable As ListObject 


    'Add row to bottom of Data table 
    ActiveSheet.ListObjects("Data").ListRows.Add 

    'Enter data from form into our new row 
    Set DataTable = ActiveSheet.ListObjects("Data") 
    Set LastRow = DataTable.ListRows(DataTable.ListRows.Count).Range 

    With LastRow 

     .Cells(1, 1) = StaffName.Value 
     .Cells(1, 5) = ClientName.Value 
     .Cells(1, 4) = Month.Value 
     .Cells(1, 7) = Description.Value 
     .Cells(1, 6) = Hours.Value 

    End With 

End Sub 
+0

Есть ли таблица с именем, как существуют данные в вашем ActiveSheet? – Sixthsense

+0

Sixthsense Sheet1 является "EmployeeInput" Sheet8 является "EmployeeData" – Leofig123

+0

Еще не хватает моей точки. В вашем коде он пытается получить данные из таблицы данных из Activesheet. Эта строка «ActiveSheet.ListObjects (« Данные »). ListRows.Add». Поэтому проверьте, существует ли таблица, названная так, как данные существуют в этой активной таблице. – Sixthsense

ответ

0

Как я знаю, что активный лист? Существует таблица маркированы "Данные" на sheet8 - Leofig123

Затем измените эту строку

ActiveSheet.ListObjects("Data").ListRows.Add 

Для

Sheets("sheet8").ListObjects("Data").ListRows.Add 
Смежные вопросы