excel - Excel VBA .替换不替换文本
问题描述
我正在使用长数组公式,因此我将条件替换为“X_X”以避免 255 个字符的限制。我还有一个预定义的变量 qbb,其中检查了数组的实际长度,尽管对于这个例子,我只是将它设置为 150。当我手动添加完整的公式时,它本身就可以正常工作。问题是当我尝试通过 VBA 进行替换时,“.Replace”没有替换任何东西。最终结果仍然有“X_X”和“114”
Dim frmla As String
Dim qbb As Variant
qbb = 150
frmla = "('Final Summary'!R2C2:R114C2<=R13C4)*('Final Summary'!R2C2:R114C2>=R14C4)*(('Final Summary'!R2C3:R114C3=R10C4)+(R10C4=""""))"
With ActiveSheet.Range("C16")
.FormulaArray = "=IFERROR(INDEX('Final Summary'!R2C1:R114C1,SMALL(IF(X_X,ROW('Final Summary'!R2C1:R114C1)-MIN(ROW('Final Summary'!R2C1:R114C1))+1),ROWS(R16C3:RC))),"""")"
.Replace What:="X_X", Replacement:=frmla
.Replace What:="114", Replacement:=qbb
End With
我还尝试了备用“.Replace”格式:
.Replace "X_X", frmla
.Replace "114", qbb
没运气。
有任何想法吗?
解决方案
Range.Replace
至少LookAt
需要设置,因为每次使用此方法时都会保存 LookAt、SearchOrder、MatchCase 和 MatchByte 的设置。如果下次调用该方法时没有为这些参数指定值,则使用保存的值。所以LookAt
可能xlWhole
来自保存的值。
并且在范围已经包含公式之后Range.Replace
运行。但是,当使用默认设置时,这个公式将是格式而不是格式。所以也需要是格式而不是格式。A1
R1C1
Excel
frmla
A1
R1C1
Dim frmla As String
Dim qbb As Variant
qbb = 150
'frmla = "('Final Summary'!R2C2:R114C2<=R13C4)*('Final Summary'!R2C2:R114C2>=R14C4)*(('Final Summary'!R2C3:R114C3=R10C4)+(R10C4=""""))"
frmla = "('Final Summary'!$B$2:$B$114<=$D$13)*('Final Summary'!$B$2:$B$114>=$D$14)*(('Final Summary'!$B$2:$B$114=$D$10)+($D$10=""""))"
With ActiveSheet.Range("C16")
.FormulaArray = "=IFERROR(INDEX('Final Summary'!R2C1:R114C1,SMALL(IF(X_X,ROW('Final Summary'!R2C1:R114C1)-MIN(ROW('Final Summary'!R2C1:R114C1))+1),ROWS(R16C3:RC))),"""")"
.Replace What:="X_X", Replacement:=frmla, LookAt:=xlPart, MatchCase:=True
.Replace What:="114", Replacement:=qbb, LookAt:=xlPart, MatchCase:=True
End With
推荐阅读
- laravel - 获取使用 Model::with() 指定的模型的隐藏属性
- c# - 使用 IoT Hub 文件上传通知作为 Webjob 触发事件
- liferay - 无法在 Liferay DXP 7.2 中添加新语言(泰语)
- linux - 如何递归地将文件夹及其所有子文件夹和文件设置为 drwxrwxrwx
- c# - Ravendb 使用 ORderBydistance 进行空间搜索
- java - Python字符串在Java服务器请求上添加额外的引号
- java - 未能创建部件的控件:StructuredTextEditor
- html - 使用 excel vba 和记事本或 Shell 使用 excel 变量生成 HTML 输出
- python - 从 iframe 中提取表 - Anbima 使用 python + selenium
- vba - 替换 MS-Word 中的复选框