excel - 如何在引号内的公式中写&?
问题描述
我目前正在弄清楚如何在公式中编写“&”,以便 VBA 将其识别为字符串而不是 & 运算符。
我的公式如下所示:
"=AVERAGEIF(RC[-4]:R[" & Total & "]C[-4],"">""&0.5*MAX(RC[-4]:R[" & Total & "]C[-4]))"
但它应该看起来像这样,因为我想使用变量 z 而不是 0.5
"=AVERAGEIF(RC[-4]:R[" & Total & "]C[-4],"">"" & Chr(34)& Chr(38) & Chr(34)& z & *MAX(RC[-4]:R[" & Total & "]C[-4]))"
如您所见,我已经尝试将“”和 & 写为 ASCII,但似乎即使这样也行不通。
在此先感谢您的帮助!
编辑:结果应该是这样的:
=AVERAGEIF(C31:C6413;">"&0.5*MAX(C31:C6413))
编辑:将用整个代码发布另一个问题。看这里
解决方案
我不会使用Chr(34)
for"
和Chr(38)
for &
,它们是不必要的间接性,使代码更难推理。&
不需要转义,并且要"
在字符串中包含文字,您可以通过将其加倍来对其进行转义,""""
包含单个"
字符的字符串也是如此。
用转义的双引号连接长字符串可能是一种令人沮丧的体验……如果我们分解这些步骤,并在运算符周围添加一些空间怎么办?
认知负荷立即减少,逻辑中的任何错误都更容易发现:
Dim avgSourceRangePart As String
avgSourceRangePart = "RC[-4]:R[" & Total & "]C[-4]"
Dim maxPart As String
maxPart = "MAX(RC[-4]:R[" & Total & "]C[-4])"
Dim avgConditionPart As String
avgConditionPart = """>"" & " & z & " * " & maxPart & ")"
现在最终的连接看起来像这样:
"=AVERAGEIF(" & avgSourceRangePart & "; " & avgConditionPart ")"
推荐阅读
- reactjs - TypeError:无法将 undefined 或 null 转换为对象 React Validation
- mysql - ER_PARSE_ERROR:您的 SQL 语法有错误;
- powershell - 我有一个 powershell 脚本,可以计算单词出现的次数。我如何显示每个单词位于哪一行?
- c# - Instagram API - 'URL 签名已过期' - 视频缩略图
- algorithm - 最小堆会形成一个已经按升序排序的数组吗?
- ios - iOS 在后台发送短信或拨打电话而不点击对话框
- cassandra - Log4j cassandra appender 异常
- jpa - Spring Data JPA 从 OneToMany 关系按值排序
- javascript - reactjs中如何克隆Medium的首页布局?
- ios - 在Bitbar真机上安装ios-webkit-debug-proxy