Excel 循环字符串公式+;变量转换为“;雷亚尔”;公式

Excel 循环字符串公式+;变量转换为“;雷亚尔”;公式,excel,vba,Excel,Vba,我正在努力处理我的工作表。关于B1单元中的x,我有一个双重问题 以下公式: =IF(A1=1,"=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))",IF(A1=2,"=INDEX(Sheet1!B:B,MATCH(x,Sheet2!A:A,0))",IF(A1=3,"=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))","=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))"))) =",Sheet1!

我正在努力处理我的工作表。关于B1单元中的x,我有一个双重问题 以下公式:

=IF(A1=1,"=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))",IF(A1=2,"=INDEX(Sheet1!B:B,MATCH(x,Sheet2!A:A,0))",IF(A1=3,"=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))","=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))"))) 
=",Sheet1!A:A,0))"
=INDIRECT(xFormula & Address & yFormula)
(一)

单元格B1根据单元格A1中的值显示“字符串”公式。理想情况下,我想让x成为一个可以用VBA定义的变量

Sub Test() 
Dim rng As Rang, cell As Range
Set rng = Range("A2:A10")
For Each cell In rng 
cell.Formula = "INDIRECT(?)...

Next cell 
基本上可以转化为(如果单元格A1=1):

理想情况下,我想循环这个。因此,例如,单元A2变为:

=INDEX(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0))
如何将此int写入VBA模块

(二)

如果单元格A2由已讨论的“字符串”公式组成,如何计算它并使其成为硬值

多谢各位

////编辑//

在B1单元中,我有以下公式

=IF(A1=1,"=INDEX(Sheet1!B:B,MATCH(",IF(A1=2,"=INDEX(Sheet1!B:B,MATCH(A2,Sheet2!A:A,0))",IF(A1=3,"=INDEX(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0))","=INDEX(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0))")))
在单元格I1中,我有以下公式:

=IF(A1=1,"=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))",IF(A1=2,"=INDEX(Sheet1!B:B,MATCH(x,Sheet2!A:A,0))",IF(A1=3,"=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))","=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))"))) 
=",Sheet1!A:A,0))"
=INDIRECT(xFormula & Address & yFormula)
我编写了以下宏:

Sub Test_3() 
Dim x As Long, lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row

For x = 2 To lastRow
    Address = Cells(x, 1).Address
    xFormula = Cells(1, 2).Value
    yFormula = Cells(1, 9).Value
    Cells(x, 3).Formula = "=INDIRECT(xFormula & Address & yFormula)"
Next
End Sub
此宏的目标是获得以下输出,例如单元格C3:

=INDEX(Sheet1!B:B,MATCH(A3,Sheet1!A:A,0)
但是,宏的输出是#NAME?使用以下公式:

=IF(A1=1,"=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))",IF(A1=2,"=INDEX(Sheet1!B:B,MATCH(x,Sheet2!A:A,0))",IF(A1=3,"=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))","=INDEX(Sheet1!B:B,MATCH(x,Sheet1!A:A,0))"))) 
=",Sheet1!A:A,0))"
=INDIRECT(xFormula & Address & yFormula)

我希望这个解释更清楚。Formula=“INDIRECT(…)”在
INDIRECT
之前需要一个
=
符号。我很难理解这一切,但我可以不认为这是一个错误。您可以发布示例数据和预期输出吗?您的
A1
值是多少,因为这是
地址的值
A1的值是1