【发布时间】:2019-04-29 09:35:49
【问题描述】:
我对 VBA 很陌生,并且正在编写代码以使用大量“if”语句插入带有公式的可变数量的新行。行插入工作正常,但我正在努力插入公式。我目前正在使用类似于下面的代码插入行:
Sub InsertRow()
'Establish variable for search range
Dim i As Range
Dim cell As Range
Set i = Range("B:B")
For Each cell In i.Cells
'Manual input for conductor count search and insert amount below
If cell.Value = "4-1/C" Then
cell.Offset(1).EntireRow.Resize(3).Insert
End If
Next
End Sub
我的问题:A 列中的值直接引用了我想要引用单元格的选项卡名称(例如,A1 将是“Sheet2”)。我想在 Sheet1 的 R 列中插入一个公式,以从 Sheet2 的单元格 A22 中提取值。对于其余插入的列,我想从 Sheet2 插入 A23,从 Sheet2 插入 A24 等。这是我正在尝试做的图像。我隐藏了不适用的列。 https://i.stack.imgur.com/pqiUy.jpg
我一直在尝试使用偏移量和 R[0]C[-2] 函数,但我承认我很迷茫。使用 excel 间接函数(不是 VBA),我可以使用 =INDIRECT("'"&$A$1&"'!A22") 提取这些值,但我无法在 VBA 中提取这些值。
提前感谢您的帮助
【问题讨论】:
-
在 VBA 之外,你有公式工作吗?或者您是否在寻求有关公式的帮助,然后也在 VBA 中?
-
谢天谢地,手动输入 excel 时间接引用工作正常,所以我只是在寻找 VBA 帮助。 VBA 的公式不同。我在 excel 中引用工作表的方式使用撇号 ('),但这会将 VBA 中的公式变成注释。到目前为止,我尝试过的所有其他事情都同样没有结果。
-
您是否尝试打开宏记录器,输入您的公式,然后检查它生成的代码?另外,请发布适用于您的 OP 的公式。
-
一个例子: Range("H404").Select ActiveCell.FormulaR1C1 = "=INDIRECT(""'""&R404C4&""'!A22"")" Range("H405").Select老实说,我什至不知道你可以录制宏。我猜这个行/列引用是静态的,它需要单元格处于活动状态。有什么建议吗?
-
为清楚起见,上面的代码来自不同的、更混乱的工作簿,因此列引用略有不同。很抱歉有任何混淆。
标签: excel vba dynamic reference worksheet