gpt4 book ai didi

excel - 将表列表对象单元格设置为工作表值时出现运行时错误 '91'

转载 作者:行者123 更新时间:2023-12-02 22:29:43 25 4
gpt4 key购买 nike

我正在尝试创建一个子组件,它将工作表中的各种值存储在变量中,然后将变量复制到列表对象(表)中空白行的相应列中。我继续收到以下错误:

“运行时错误‘91’:未设置对象变量或 With block 变量”

我尝试了很多变体,但不断收到错误,有时甚至是不同的错误。非常感谢任何建议。这是代码

Sub RecordData()
Dim strName1 As String, strName2 As String
Dim dTimeStamp As Date
Dim sItem1 As Single, sItem2 As Single, sItem3 As Single
Dim sItem4 As Single
Dim ws_1 As Worksheet, ws_2 As Worksheet
Set ws_1 = Sheets("Data")
Set ws_2 = Sheets("Output")


strName1 = ws_1.Range("D1").MergeArea.Cells(1, 1).Value
strName1 = Left(strName1, Len(strName1) - 6)
strName2 = ws_1.Range("B17")
dTimestamp = Now
sItem1 = ws_1.Range("D3")
sItem2 = ws_1.Range("E3")
sItem3 = ws_1.Range("F3")
sItem4 = ws_1.Range("N3")

Dim loTable As ListObject
Set loTable = ws_2.ListObjects("CurrentMkts")

Dim iLastRow As Integer
iLastRow = loTable.Range.Rows.Count
If iLastRow = 2 Then
Dim iTempRow As Integer
iTempRow = iLastRow - 1
loTable.DataBodyRange.Cells(iTempRow, 1).Value = dTimeStamp
loTable.DataBodyRange.Cells(iTempRow, 2).Value = sItem1
loTable.DataBodyRange.Cells(iTempRow, 3).Value = sItem2
loTable.DataBodyRange.Cells(iTempRow, 4).Value = sItem3
loTable.DataBodyRange.Cells(iTempRow, 6).Value = sItem4
loTable.ListRows.Add
Else
iTempRow = iLastRow
loTable.DataBodyRange.Cells(iTempRow, 1).Value = dTimeStamp
loTable.DataBodyRange.Cells(iTempRow, 2).Value = sItem1
loTable.DataBodyRange.Cells(iTempRow, 3).Value = sItem2
loTable.DataBodyRange.Cells(iTempRow, 4).Value = sItem3
loTable.DataBodyRange.Cells(iTempRow, 6).Value = sItem4
loTable.ListRows.Add
End If
End Sub

感谢您的帮助。

最佳答案

该错误的发生是由于 Excel 中处理空白 ListObject 的方式看似无意义。

本质上,在这种情况下,由于 ListObject 中没有数据,Excel 将 DataBodyRange 属性视为不存在,因此当您尝试设置 单元格的值时>DataBodyRange 代码错误。

要修复此问题,请将 loTable.ListRows.Add 移至 IF block 第一部分中设置单元格值之前的行。

IF block 的第二部分不需要将 loTable.ListRows.Add 移动到顶部,因为将出现实际数据行。

关于excel - 将表列表对象单元格设置为工作表值时出现运行时错误 '91',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48216970/

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