当我尝试直接引用范围内的值时,出现运行时错误450,但是如果我使用中间变量,它将起作用。我不明白为什么,所以我担心将来在某个时候会再次收到该错误,而不知道为什么。
我尝试使用With ... End With块,当我直接引用该范围时,它仍然不起作用。
此代码给出了错误
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
我不知道为什么它可以在第二个代码块中工作,但不能在第一个代码块中工作。我尝试设置中间变量的级别有所不同。如果我创建数据透视表变量并进行了适当设置,则代码可以正常运行,但是如果我创建工作表变量并尝试使用工作表变量引用相同的范围,则它将不起作用。
虽然我可以使用中间变量来使这段代码正常工作,但我真的很想了解为什么要在其他情况下出现这种情况。
答案 0 :(得分:1)
RowRange属性返回一个Range
对象,但是它不接受任何参数,因此您不能传递任何参数。
lol = Worksheets(1).PivotTables("PivotTable2").RowRange.Cells(2, 1).Value
对我来说很好,
lol = Worksheets(1).PivotTables("PivotTable2").RowRange()(2, 1).Value