在第 N 列的每个单元格中放置一个公式,其中左边两列有一个值

Place a formula in every cell in column N for which there is a value two columns to the left

如果左侧两列(L 列)有一个值,如何在 N 列的每个单元格中放置一个公式?

 Sub KeepOnlyAtSymbolRows()
        Dim ws As Worksheet
        Dim rng1, rng2 As Range
        Dim lastRow, LASTROW2 As Long

    LASTROW2 = ws.Range("L" & ws.Rows.Count).End(xlUp).Row
         Set rng2 = ws.Range("L2" & LASTROW2)
         'Debug.Print rng2
         For Each cell In rng2
            cell.offset()
            cell.Formula = "foo bar etc"
            Next cell
    End Sub

也许试试:

Sub KeepOnlyAtSymbolRows()
Dim rng2 As Range
Dim LASTROW2 As Long
    LASTROW2 = Range("L" & Rows.Count).End(xlUp).Row
    Set rng2 = Range("N1:N" & LASTROW2)
    For Each cell In rng2
        If cell.Offset(0, -2) <> "" Then
        cell.Formula = "foo bar etc"
        End If
     Next cell
End Sub  

您似乎既没有应用 rng1 也没有应用 lastRow,也没有设置 ws 值。如果您曾经并且想要将维度设为 Range/Long,那么在 VBA 中您需要 Pay Attention To Variables Declared With One Dim Statement

如果 9 是您在 ColumnL 中最后占用的行,您正在尝试使用会给出类似于 L29 的语法来设置 rng2

因为我认为您要填充的是 ColumnN,所以我认为 rng2 应该基于此,即使使用 ColumnL 来确定最后填充的行。

您似乎需要条件(<> "" 被解释为 "not blank")并且 .offset 需要参数((0,-2) 被解释为 "same row, two columns to the left")。