gpt4 book ai didi

excel - 设置动态公式 VBA

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

我目前正在尝试运行以下代码。

Sub TabRef()
crag = ActiveCell.Value
crag = Replace(Replace(Replace(crag, " ", "_"), "-", "_"), ",", "_")
Selection.Offset(0, 2).Select
MsgBox (crag)
MsgBox ("=" & crag & "[[#Totals],[Route Name]]")
ActiveCell.Formula = "=" & crag & "[[#Totals],[Route Name]]"
Selection.Offset(0, 2).Select
ActiveCell.FormulaR1C1 = "=" & crag & "[[#Totals],[Stars]]/" & crag & "[[#Totals],[Route Name]]"
Selection.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=" & crag & "[[#Totals],[Rating 3]]/" & crag & "[[#Totals],[Route Name]]"

End Sub

我将运行一次,它会很好地工作,但我会再次运行它并得到“运行时错误'1004':应用程序定义或对象定义的错误”我不明白为什么它会与一个单元格一起工作但不是另一个,当这些表中的表和列被定义时。

最佳答案

问题在于事件单元格的原始值是多少。您不能在公式中使用文本而不用引号引起来,否则 Excel 会尝试将其确定为“命名范围”或“列表对象”。这条线,

ActiveCell.Formula = "=" & crag & "[[#Totals],[Route Name]]"

... 将失败并显示 Run time error: 1004如果单元格的值为文本。将其更改为:
ActiveCell.Formula = "'=" & Chr(34) & crag & Chr(34) & Chr(38) & "[[#Totals],[Route Name]]"

这应该足以将注释的公式放入单元格中。返回工作表并将公式调整为使用列表对象表引用的有效公式。当您有一个工作公式时,调整 VBA 以适应新公式。

我很抱歉没有更精确,但您的列表对象表引用确实让我感到难过。

您可能还希望使用 Debug.Print而不是 MsgBox并按照立即窗口 (Ctrl+G) 中的结果进行操作。

关于excel - 设置动态公式 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42028923/

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