【发布时间】:2016-06-03 22:32:20
【问题描述】:
我从未使用过 VBA 宏来输入公式。有谁知道为什么这不起作用?我的印象是双引号应该解决我原来的问题,即只显示第二个引号 - 但它返回一个错误。
Sub Macro()
Worksheets("Summary").Range("H3").Formula "=EXACT(G3, COUNTIFS((INDIRECT(CONCATENATE("" '"", RIGHT(B3, LEN(B3) - FIND(""- "", B3) - 1), ""'!"", ""K:K""))), D3, (INDIRECT(CONCATENATE(""'"", RIGHT(B3, LEN(B3) - FIND(""- "", B3) - 1), ""'!"", ""g:g""))), E3, (INDIRECT(CONCATENATE(""'"", RIGHT(B3, LEN(B3) - FIND(""- "", B3) - 1), ""'!"", ""j:j""))), F3))"
End Sub
【问题讨论】:
-
@timthebomb 是正确的。您需要将
.Formula= 设为包含您的公式的字符串。您对在单元格中产生单引号的代码中的双引号也是正确的。例如""text""在单元格的值中变为"text"。我把你的公式放在一个单元格中,但得到一个#VALUE!错误...希望是因为我的工作表在 G3、D3、B3 等中没有正确的数据。如果在实施 timthebomb 的修复后仍然出现错误,请告诉我们错误是什么,因为“返回错误”并不是真正的描述性。 -
哎呀!单个公式中的 3 个 INDIRECT 函数。我希望你有充分的理由。
-
哈哈@ThunderFrame 除了缺乏知识我绝对不会