excel - 将字符串公式+变量循环成“真实”公式
问题描述
我正在为我的 Excelsheet 苦苦挣扎。我对单元格 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))")))
(1)
单元格 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):
=INDEX(Sheet1!B:B,MATCH(cell,Sheet1!A:A,0))
理想情况下,我想循环这个。因此,例如,单元格 A2 变为:
=INDEX(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0))
我怎样才能在 VBA 模块中编写这个?
(2)
如果单元格 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 中,我有以下公式:
=",Sheet1!A:A,0))"
我写了以下宏:
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
此宏的目标是获得以下输出,例如 Cell C3:
=INDEX(Sheet1!B:B,MATCH(A3,Sheet1!A:A,0)
但是,宏的输出是#NAME?使用以下公式:
=INDIRECT(xFormula & Address & yFormula)
我希望这个解释更清楚
解决方案
推荐阅读
- sql - Python sqlite3 SQL查询获取具有最新日期但每个唯一列限制的所有条目
- python - 使用python,Ubuntu OS从脚本调用命令行
- lotus-notes - 如何在 domino Designer 现有应用程序中开发的 Lotus Notes 客户端中安装功能?
- json - jq - 如何创建包含双引号环绕字段值的输出
- python-3.x - 将标签转换为 one-hot 编码
- python - #Python CodeBreaker 在 Python 中
- pine-script - Pine 脚本 - 收盘价,深井
- c# - 使用 LocalDB 数据库部署 C# 应用程序
- java - Android Studio中的网格视图图像显示错误
- python - 可以使用通用视图“ListView”获取一些具体数据吗?