我有一个名为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(“”)。激活,但我真的不知道如何解决这个问题。有人可以帮忙吗?
答案 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")