在第 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")。
如果左侧两列(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")。