gpt4 book ai didi

由于直接引用范围而不是通过中间变量而导致 Excel VBA 运行时错误 450

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

当我尝试直接引用某个范围内的值时,出现运行时错误 450,但如果我使用中间变量,它就可以工作。我不明白为什么,所以我担心将来某个时候我会在不知道为什么的情况下再次遇到错误。

我尝试使用 With ... End With block ,但当我直接引用范围时它仍然不起作用。

此代码给出错误

Public Sub Test_PT()
Dim lol As String

lol = Worksheets(1).PivotTables("PivotTable2").RowRange(2, 1).Value
MsgBox (lol)

End Sub

虽然这段代码工作正常

Public Sub Test_PT()
Dim lol As String
Dim rng As Range

Set rng = Worksheets(1).PivotTables("PivotTable2").RowRange
lol = rng(2, 1).Value

MsgBox (lol)

End Sub

我不知道为什么它在第二个代码块中起作用,但在第一个代码块中不起作用。我尝试过设置中间变量的级别的变化。如果我创建一个数据透视表变量并对其进行适当设置,则代码运行正常,但如果我创建一个工作表变量并尝试使用工作表变量引用相同的范围,则代码不起作用。

虽然我可以通过使用中间变量来使这段代码正常工作,但我真的很想理解为什么我需要这样做,以防它出现在其他上下文中。

最佳答案

RowRange 属性返回一个 Range 对象,但它不接受任何参数,因此您无法传入任何参数。

lol = Worksheets(1).PivotTables("PivotTable2").RowRange.Cells(2, 1).Value 

对我来说效果很好,也是如此

lol = Worksheets(1).PivotTables("PivotTable2").RowRange()(2, 1).Value

关于由于直接引用范围而不是通过中间变量而导致 Excel VBA 运行时错误 450,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56642693/

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