excel:运行表单时运行时错误9

时间:2017-05-23 17:02:50

标签: excel vba excel-vba

我有一个名为BASE_GERAL_FUNCIONARIOS的工作表,其中包含五列信息,我希望使用下面的代码创建一个表单。我可以输入所有信息,并将此代码与“插入”按钮相关联:

Private Sub inserirInfo_Click()
Dim LastRow As Range
Dim ExpenseTable As ListObject

'Add row to bottom of BASE_GERAL_FUNCIONARIOS table  

Worksheets("BASE_GERAL_FUNCIONARIOS").Activate.ListObjects("BASE_GERAL_FUNCIONARIOS").ListRows.Add


'Enter data from form into our new row
Set ExpenseTable = Worksheets("BASE_GERAL_FUNCIONARIOS").Activate.ListObjects("BASE_GERAL_FUNCIONARIOS")
Set LastRow = ExpenseTable.ListRows(ExpenseTable.ListRows.Count).Range

With LastRow

    .Cells(1, 1) = cmbMatricula.Value
    .Cells(1, 2) = cmbNome.Value
    .Cells(1, 3) = cmbFuncao.Value
    .Cells(1, 4) = txtAlocacao.Value
    .Cells(1, 5) = txtDataIni.Value
    .Cells(1, 6) = txtDataFim.Value


End With
End Sub

我的表单放在与我填写信息的表格不同的表格中。无论如何,当我运行代码时,我不断得到运行时错误9 ,突出显示这部分代码:

Worksheets("BASE_GERAL_FUNCIONARIOS").Activate.ListObjects("BASE_GERAL_FUNCIONARIOS").ListRows.Add

我正在考虑使用“ActivateSheet”而不是Worksheets(“”)。激活,但我真的不知道如何解决这个问题。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

错误9表示下标超出范围,即您所指的对象不存在于工作簿/工作表中。

确保您有一张名为" BASE_GERAL_FUNCIONARIOS"在工作簿和该工作表中,您有一个名为" BASE_GERAL_FUNCIONARIOS"的excel表。

除此之外,正确的语法将是这样的...... Worksheets("BASE_GERAL_FUNCIONARIOS").ListObjects("BASE_GERAL_FUNCIONARIOS").ListRows.Add

第二行也是这样......

Set ExpenseTable = Worksheets("BASE_GERAL_FUNCIONARIOS").ListObjects("BASE_GERAL_FUNCIONARIOS")