gpt4 book ai didi

excel - 表为空时 DataBodyRange 导致错误

转载 作者:行者123 更新时间:2023-12-04 21:32:25 25 4
gpt4 key购买 nike

晚上好,

我有以下按钮来保存表单的注册信息,但是在启动第一条记录时它会抛出错误:错误已发生 91 对象或 block 的变量未建立并指示突出显示的内容:

在已经插入值时它正常工作后,问题仅针对第一条记录。拜托,你能帮我解决错误吗?

非常感谢。

 Private Sub cmdguardar_Click()

Dim names As Variant
Dim IDs As Variant
Dim LROT As Long
Dim Celda As Range
Dim i%
Dim row As ListRow
Dim table As ListObject

'We declare the table
Set tabla = ActiveSheet.ListObjects("Table2")


names = Split(txtname, vbCrLf)
IDs = Split(txtID, vbCrLf)

'We go through each name (if there is only 1, it does not matter, it will
only make one cycle)

For i = 0 To UBound(nombres)

'Last row of the table

LROT = tabla.Range.Columns(1).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'We pass the data to the table

tabla.DataBodyRange.Cells(LROT, 1) = Val(Txtn) ---> LINE OF MISTAKE
tabla.DataBodyRange.Cells(LROT, 1).Offset(0, 1) = cbotype
tabla.DataBodyRange.Cells(LROT, 1).Offset(0, 2) = CDate(txtdate)
tabla.DataBodyRange.Cells(LROT, 1).Offset(0, 3) = cbounit
tabla.DataBodyRange.Cells(LROT, 1).Offset(0, 4) = names(i)
tabla.DataBodyRange.Cells(LROT, 1).Offset(0, 5) = IDs(i)
tabla.DataBodyRange.Cells(LROT, 1).Offset(0, 6) = cbojob


'We increase the number counter
Txtn = Txtn + 1

Next i

'We empty both 2 textbox

txtname = ""
txtID = ""

'We empty the matrices

Erase names
Erase IDs

End Sub

最佳答案

DataBodyRange在添加行之前没有设置(什么都没有)。这就是你得到错误的原因。您可以使用 InsertRowRange对于第一行,但可能有一种更简洁的方法来完成所有这些。

您似乎希望每次都插入一个新行并从数据中填充。所以,使用 ListObject.ListRows.Add()添加行:

For i = 0 To UBound(nombres)
Dim newRow As ListRow
Set newRow = tabla.ListRows.Add
newRow.Range(1, 1) = Val(Txtn)
newRow.Range(1, 2) = cbotype
newRow.Range(1, 3) = CDate(txtdate)
newRow.Range(1, 4) = cbounit
newRow.Range(1, 5) = Names(i)
newRow.Range(1, 6) = IDs(i)
newRow.Range(1, 7) = cbojob
Txtn = Txtn + 1
Next i

关于excel - 表为空时 DataBodyRange 导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48615856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com