我的工作表中的SUPPOSE单元格G1具有此公式 = $ R $ 5 * I4 + $ S $ 5 * H4 + $ T $ 5 * G4 + $ U $ 5 * F4 + $ V $ 5 * E4 + $ W 5 $ * D4 + $ X $ 5 * C4 + $ Y $ 5 * B4
G2有一个不同的公式 = $ R $ 5 * I4 + $ S $ 5 * H4 + $ T $ 5 * G4 + $ U $ 5 * F4
现在对于这个现有公式,我想添加一个新的和产品$ X $ 5 * A4 像这样制作G1的新公式
= $ R $ 5 * I4 + $ S $ 5 * H4 + $ T $ 5 * G4 + $ U $ 5 * F4 + $ V $ 5 * E4 + $ W 5 $ * D4 + $ X $ 5 * C4 + $ Y $ 5 * B4 +的 $ X $ 5 * A4
和那样的G2 = $ R $ 5 * I4 + $ S $ 5 * H4 + $ T $ 5 * G4 + $ U $ 5 * F4 +的 $ X $ 5 * A5
所有细胞中的初始公式是不同的,所以这就是为什么我想写一个宏。请帮帮我
我已经让这段代码看了评论:
Sub test2()
Dim myRange As Range, Cell As Range
Dim targetsheet As Worksheet
Set targetsheet = Worksheets("Sheet1")
Dim abc As String
For i = 1 To 14
abc = "R7" & "C" & (i + 24)
With targetsheet
Set myRange = .Range(.Cells(77, i + 2), .Cells(87, i + 15))
End With
' MsgBox myRange
For Each Cell In myRange
If IsEmpty(Cell) Then
'MsgBox ("=" & abc & "*R[-75]C[" & (-i + 1) & "]")
Cell.FormulaR1C1 = "=" & abc & "*R[-75]C[" & (-i + 1) &
"]"
Else
Cell = Cell.FormulaR1C1 & "+" & abc & "]*R[-75]C[" & (-i
+ 1) & "]"
End If
Next Cell
Next i
End Sub
现在,这个代码适用于i = 1但是只要我变成2; Cell.FormulaR1C1的值变为 R7C25 * R [-75] C 请帮我纠正这个。致谢
答案 0 :(得分:0)
您可以使用Dim myCell As Range
Set myCell = Range("A1")
myCell = myCell.Formula & "+$X$5*A4"
获取并设置单元格公式,例如
R1C1
我想在你的情况下,你会将范围设置为所有单元格的位置并循环通过它们附加此结尾,但这不是我的网站的代码,所以如果你有一个游戏并发布一个新问题卡住了。
修改强>
根据您的问题更新,您仍然可以通过循环遍历每个单元格并使用Sub test()
Dim myRange As Range, Cell As Range
Set myRange = Range("G1:J8")
For Each Cell In myRange
Cell = Cell.FormulaR1C1 & "+R5C24*R[4]C[-6]"
Next Cell
End Sub
公式来使用此方法。
R5C24
$X$5
是对单元格R[4]C[-6]
的绝对引用,而{{1}}是您当前单元格的相对路径。
答案 1 :(得分:0)
由于您可以在公式的开头添加$X$5*A4
,为什么不使用Excel上提供的replace
工具?只需在所有单元格上将=
替换为=$X$5*A4+
。
如果您想要动态引用A4
,并且您要更改的第一个单元格是G1
(实际上引用A4
的单元格),请替换为=$X$5*INDIRECT(ADDRESS(ROW()+3;COLUMN()-6))+
。