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

我知道我做错了,我不能完全弄清楚VBA的术语。 基本上,如果满足两个条件,我想从单元格上方的单元格复制格式,数据和字体。 确切地说,我想要Z8从Z7复制格式,数据和字体,当且仅当Z8是空的,S8有信息。 否则Z8保持这种方式。 我想要做一个特定的范围。

我宁愿不使用SET,因为我想使用其他的macros,我不希望范围永久设置。

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是实例化一个对象所必需的。 你需要创build一个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