excel - Excel VBA运行时错误450直接引用范围而不是通过中间变量
问题描述
当我尝试直接引用某个范围内的值时,出现运行时错误 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
我不知道为什么它在第二个代码块中起作用,但在第一个代码块中不起作用。我尝试了设置中间变量的级别的变体。如果我创建一个数据透视表变量并适当地设置它,代码运行良好,但如果我创建一个工作表变量并尝试使用工作表变量引用相同的范围,它就不起作用。
虽然我可以通过使用中间变量来使这段代码工作,但我真的很想了解为什么我需要这样做,以防它出现在其他上下文中。
解决方案
RowRange 属性返回一个Range
对象,但它不接受任何参数,因此您不能传入任何参数。
lol = Worksheets(1).PivotTables("PivotTable2").RowRange.Cells(2, 1).Value
对我来说很好,就像
lol = Worksheets(1).PivotTables("PivotTable2").RowRange()(2, 1).Value
推荐阅读
- json - 如何将 Json 值传递给 C# 中的存储过程
- ios - 按消息文本的 Pubnub 搜索频道
- mongodb - readStartDocument 只能在 CurrentBSONType 为 DOCUMENT 时调用
- html - 如何垂直对齐一个div?
- python - 如何将函数结果保存为 pandas 数据框?
- java - 尽管 xpath 准确,但无法单击元素
- python - QPainter.drawText 输出模糊
- sass - SCSS - 在文件范围内使用变量
- regex - 我们可以编写一个正则表达式来接受所有重复的 '.' 那是字符串中的小数点?
- python - Pyspark 无法读取网络上共享文件夹中的 csv 文件