locking公式中的相对引用
我试图创build一个search,当发现将公式input到单元格。 问题是试图创build一个公式,该公式将引用find的search行( OffSet
?)并将其locking在公式中(与在VBA中使用F4或$
相同)
Set SrchRng = Range("F6:F30") For Each cel In SrchRng 'SL Events If cel.Value = "SL" Then I = "=RC[-9]-R6C4" ''''I want it to be along these lines ''''I = "=RC[-9]-$R$C[-9]" or ''''I = "=RC[-9]-($Cel.Offset(, -9).Value)" cel.Offset(0, 7).Value = I End If
第二个单元格需要被locking,因为我在macros的不同部分使用自动填充。
可以这样做吗?
公式=RC[-9]-R6C4
使用R1C1
参考样式。
这种风格对行和列都使用数字(即R?C?
)。 单元格引用是与包含该公式的单元格有关的。
绝对引用由行R
右侧的数字和列右侧的C
( R6C4
等于$D$6
)声明。
相对引用由方括号内的数字声明,负数表示上面\的单元格为包含公式的单元格的行\列的左上angular的单元格,而正数表示行\列的右下方的单元格( C[-9]
表示在公式单元格左边的九列)。 另一种forms的相对引用是当R或C在旁边没有数字时出现,意味着它是指包含公式的单元格的同一行\列。
从上面确保公式=RC[-9]-R6C4
(ie =D6-$D$6
)第二个单元总是指find的单元cel
的同一行只需要replace这一行:
I = "=RC[-9]-R6C4"
用这一行:
I = "=RC[-9]-R" & cel.Row & "C4"
从而使行固定和总是指单元格cel
同一行
由于您想locking单元格以进一步使用自动填充,因此您必须使用A1参考样式。
对于一个提醒(在评论中说),你不能使用$
R1来locking使用R1C1风格的公式中的东西。
Sub Test_Excel_Noob() Dim SrchRng As Range Dim CelRg As Range Set SrchRng = ThisWorkbook.Sheets("Feuil1").Range("F6:F30") For Each CelRg In SrchRng.Cells 'SL Events If CelRg.Value <> "SL" Then Else '''Equivalent of "=RC[-9]-$R$C[-9]" '''which is incorrect as you can't use $ in R1C1 style CelRg.Offset(0, 7).Formula = _ "=" & CelRg.Offset(0, -2).Address(0, 0) & _ "-" & CelRg.Offset(0, -2).Address(1, 1) End If Next CelRg End Sub