需要一些帮助引用索引公式数组
中的字符串我的代码如下:
Sub Loop_Test2()
Dim i As Long
Dim j As Long
Dim CountAll As Long
Dim CountXL As Long
Dim CustomerName As String
ActiveSheet.Range("A1").Activate
CountAll = ActiveSheet.Range("A35")
For j = 1 To CountAll
i = 2
CountXL = Cells(i, j).Value
For i = 1 To CountXL
CustomerName = Cells(1, j).Value
'MsgBox CustomerName
Cells(i + 2, j).FormulaArray = "=IFERROR(INDEX(Sheet2!$A:$B,SMALL(IF(Sheet2!$A:$A=CustomerName,ROW(Sheet2!$A:$A)),ROW(1:1))*1,2),0)"
Next i
Next j
End Sub
没有错误;但我需要修复此部分,以便它引用值而不是公式中的实际单词:
IF(Sheet 2中$ A:$ A =客户名称
答案 0 :(得分:1)
在您的情况下,请使用以下内容:
Cells(i + 2, j).FormulaArray = "=IFERROR(INDEX(Sheet2!$A:$B,SMALL(IF(Sheet2!$A:$A=""" & CustomerName & """,ROW(Sheet2!$A:$A)),ROW(1:1))*1,2),0)"
一般情况下,如果你需要使用联合字符串"formula_par21""" & value & """formula_part2
,如果它的号码是 - 没有双引号,如"formula_par21" & value & "formula_part2
<强>&#34;&#34;在VBA =&#34;在字符串变量中
答案 1 :(得分:1)
Cells(i + 2, j).FormulaArray = "=IFERROR(INDEX(Sheet2!$A:$B,SMALL(IF(Sheet2!$A:$A=""""" & CustomerName & """"",ROW(Sheet2!$A:$A)),ROW(1:1))*1,2),0)"
你必须将VBA中的公式加倍 - >&gt; “”=“”“”
以下是您可能会收到错误的简单示例:
Excel公式:
=If(A1<>"";A1;B1)
VBA公式
"=IF(A1<>"""",A1,B1)"
所以我建议你试试这个:
Cells(i + 2, j).FormulaArray = "=IFERROR(INDEX(Sheet2!$A:$B,SMALL(IF(Sheet2!$A:$A=""""" & CustomerName & """"",ROW(Sheet2!$A:$A)),ROW(1:1))*1,2),0)"