如果满足两个条件,则复制以前的单元格格式、数据和字体

Copy previous cell format, data and font if two conditions are met

我知道我做错了,我不太明白 VBA 的命名法。基本上,如果满足两个条件,我想从单元格上方的单元格复制格式、数据和字体。确切地说,当且仅当 Z8 为空且 S8 中有信息时,我希望 Z8 从 Z7 复制格式、数据和字体。否则 Z8 保持这种状态。我想在特定范围内这样做。

我不想使用 SET,因为我想使用其他宏并且我不希望范围被永久设置。

Sub ZFillTest()
Dim i As Integer
Dim k As Integer
Dim rng As Range

i = 0
k = 0
i = i + 4
k = k + 4

rng = ("Z5:Z200")
For Each cell In rng
    If cell.Offset(k, 8).Value <> "" And cell(k, Z + i).Value = "" Then
    cell(k, Z + i).Value = cell(k, Z + i - 1).Value

    i = i + 1
    k = k + 1

End If
Next

End Sub

Set 需要实例化一个对象。您需要创建一个 Range 对象并循环遍历它,为此您 必须 使用 Set。这并不是说您以后不能将其设置为不同的东西。

试试下面的代码:

Sub ZFillTest()
    Dim rng As Range, r As Range

    Set rng = ThisWorkbook.Worksheets("Sheet1").Range("Z5:Z200")
    For Each r In rng
        If r.Value = vbNullString And r.Offset(0, -7).Value <> vbNullString Then
            r.Offset(-1, 0).Copy Destination:=r
            r.Value = r.Value 'if you don't want formulas copied over
        End If
    Next r
End Sub