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右侧的数字和列右侧的CR6C4等于$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