微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要去掉自动@放置在Excel公式中

如何解决需要去掉自动@放置在Excel公式中

突然间,Excel 365 开始在我的公式中添加一个 @,该公式通过 VBA 分配。文档说它不应该影响功能,但它会影响并给我#VALUE!错误。当我手动删除它时,没有它的公式是正确的。文档还说这来自使用表时的结构化名称,但数据不在表中。

我已经尝试了所有我能想到的方法删除它,但没有任何效果。我已将 SENDKEYS 序列分配给 FixFormula() 并在我的 proc 中调用它,但它不起作用。如果我将 FixFormula() 分配给工作表上的一个按钮,它就可以正常工作。

我的问题是:

  1. 我可以关闭 Excel 在公式中添加 @ 吗?或
  2. 如何修复 SENDKEYS 调用以在我的代码中工作?

代码如下:

'lookup/get values from CW Download and copy to KPMG
CWLastRow = Sheets("CW Download").Cells(Sheets("CW Download").Rows.Count,"B").End(xlUp).Row

vLookupArray = "'CW Download'!$Z$2:$Z$" + CStr(CWLastRow)
vReturnArray = "'CW Download'!$A$2:$R$" + CStr(CWLastRow)
 
Range("AP2").Formula = "=XLOOKUP($Z2," + vLookupArray + "," + vReturnArray + ",""-"",0)"

'remove @ symbol from formula
Range("AO2").Formula = "=FORMULATEXT(AP2)"
If Mid(Range("AO2"),2,1) = "@" Then
    Sheets("KPMG").Activate
    Range("AP2").Activate
    Call FixFormula
End If
Range("AP2").AutoFill Destination:=Range("AP2:AP" + CStr(pLastRow)),Type:=xlFillDefault

Sub FixFormula()

    SendKeys "{F2}{UP 15}{HOME}{RIGHT}{DEL}{ENTER}"
    
End Sub

这是一个完整的自动化项目的片段,让我费尽心思。一切正常,直到本周早些时候这个“功能”开始出现。研究表明,它是在 2019 年版本中添加的,不应影响功能

这是项目中另一个 proc 的片段,也分配了 XLOOPUP 公式,即使将公式放在该工作表上的 2 个数据透视表之间,也不会出现此问题。

pLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count,"A").End(xlUp).Row
Cells(4,8).Value = "Match"
Cells(5,8).Formula = "=XLOOKUP($J5,$A$5:$A$" + CStr(pLastRow) + ",$G$5:$G$" + CStr(pLastRow) + ",0)"
Cells(4,9).Value = "Variance"
Cells(5,9).Formula = "=$M5-$H5"

工作表“CW 下载”或“毕马威”上没有运行代码的表格。

非常感谢任何见解。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。