Excel 循环字符串公式+;变量转换为“;雷亚尔”;公式
我正在努力处理我的工作表。关于B1单元中的x,我有一个双重问题 以下公式: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!
=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