- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景:我得到了一个很酷的数组公式,它在 Excel 中运行得非常完美。现在我正在尝试使用 VBA 执行相同的公式。所以我在单元格中输入数组公式并用宏记录。该公式运行完美。宏记录器给我这个:
Selection.FormulaArray = _
"=INDEX('[HOGARES ALBACETE.xlsx]21076'!C1,MATCH(MAX(IF(RIGHT('[HOGARES ALBACETE.xlsx]21076'!C1,LEN(R[-1]C)+2)=""["" &R[-1]C&""]"",'[HOGARES ALBACETE.xlsx]21076'!C2)),IF(RIGHT('[HOGARES ALBACETE.xlsx]21076'!C1,LEN(R[-1]C)+2)=""[""&R[-1]C&""]"",'[HOGARES ALBACETE.xlsx]21076'!C2),0),1)"
如果我尝试运行上面的代码,我会收到错误 1004。子程序只有这一行。没有别的了。
经过一些研究,我进入了这个:
VBA Run time error 1004: Unable to set the formulaarray property of the range class
Entering Long Array Formulas In VBA
所以我将公式分成两部分:
Dim theFormulaPart1 As String
Dim theFormulaPart2 As String
Dim MiReemplazo As String
MiReemplazo = "cacota"
theFormulaPart1 = "=INDEX('[HOGARES ALBACETE.xlsx]21076'!C1,MATCH(MAX(IF(RIGHT('[HOGARES ALBACETE.xlsx]21076'!C1,LEN(R[-1]C)+2)=""["" &R[-1]C&""]"",'[HOGARES ALBACETE.xlsx]21076'!C2))," & MiReemplazo & ",0),1)"
theFormulaPart2 = "IF(RIGHT('[HOGARES ALBACETE.xlsx]21076'!C1,LEN(R[-1]C)+2)=""[""&R[-1]C&""]"",'[HOGARES ALBACETE.xlsx]21076'!C2)"
With ActiveSheet.Range(“F2”)
.FormulaArray = theFormulaPart1
.Replace MiReemplazo, theFormulaPart2
End With
我没有收到任何错误,但是 .Replace MiReemplazo, theFormulaPart2
部分什么也没做(我的意思是,替换没有发生,但代码执行了)
另外,尝试过:
ActiveSheet.Range("F2").FormulaArray = theFormulaPart1
DoEvents
Cells.Replace What:=MiReemplazo, Replacement:=theFormulaPart2, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
但是什么也没有。所以我有点没主意了。
此外,还检查了两个公式字符串的长度 (173,107)。我需要排序字符串吗?
我非常确定这不是问题:
提前致谢。
最佳答案
我敢打赌您的 Excel 未设置为使用 R1C1 引用,因此当您尝试将 R1C1 引用的字符串放入 A1 样式公式时,替换将不起作用。尝试使用:
Application.ReferenceStyle = xlR1C1
With ActiveSheet.Range("F2")
.FormulaArray = theFormulaPart1
.Replace MiReemplazo, theFormulaPart2
End With
Application.ReferenceStyle = xlA1
关于vba - 尝试使用 FormulaArray 时出现错误 1004。替换技巧不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51196290/
首先,我正在尝试编写一个宏程序,它可以让用户使用它来查找最接近用户输入的总目标的数字。 在第一个图中,数量列分别显示了它们自己标题的数量。目标是来自用户的输入。水平的 A、B、C、D 用于显示用户使用
表 1: G H I J K | Lane | Bowler | Score
背景: 我需要检索数组公式(在 excel 界面中)计算的值,以便循环遍历那里的结果。 问题: 我还没有找到一种方法来存储它计算的所有值。我只能存储第一个。 代码: Sub test() Dim Ar
错误是 1004 错误,但我不明白为什么。单元格中的公式为: {=INDEX(KPI!A:AQ,MATCH(1,(KPI!A:A=Monday!$K$1)*(KPI!C:C=Monday!B4),0)
我创建了以下公式: =IFNA(LOOKUP(10^99,--MID(O2,MIN(IF((--ISNUMBER(--MID(O2,ROW($1:$25),1))=0)*ISNUMBER(--MID(
我有以下代码: With Sh.Range("A1:A" & LastRow + 1).Offset(0, 4) .FormulaArray = "=MAX(IF(A2:A" & Last
背景:我得到了一个很酷的数组公式,它在 Excel 中运行得非常完美。现在我正在尝试使用 VBA 执行相同的公式。所以我在单元格中输入数组公式并用宏记录。该公式运行完美。宏记录器给我这个: Selec
try { sheet1.get_Range("M34").FormulaArray = "=SUM(IF(Sheet2!D6:D122=M31,IF(Sheet2!P6:P122>0
VBA .FormulaArray 似乎对我的范围有问题。我读过它不能处理超过 255 个字符,但我的只有大约 108 个,但我可能理解错了。 它给出了一个 Error 1004: Unable to
我正在使用 VBA 将以下 INDEX MATCH 公式插入到一组单元格中。 cell2.FormulaArray = _ "=INDEX('[08 Debt Comparison &
我使用如下所示的 VBA 代码行将 VBA 代码内的函数发送到单元格: Sheets("Sheet1").Range("B2").FormulaLocal = "=somefunctions_in_l
我是一名优秀的程序员,十分优秀!