2017-03-09 63 views
2

我有下面的VBA脚本。它只是将信息从一个表单移动到另一个表单。但是,我希望每个单元格在sheet2中拥有与sheet1中相同的颜色和字体。樱桃在上面,当移动单元格时,如果我可以让脚本跳过空白单元格,那将是惊人的。移动单元格并跳过空单元格时保持颜色和字体

Sub Example() 

lr = Sheets("Sheet1").Range("Z65536").End(xlUp).Row 
k = 0 
For i = 5 To lr 
k = k + 1 

Sheets("Sheet2").Range("A" & k) = Sheets("Sheet1").Range("Z" & i) 
Sheets("Sheet2").Range("B" & k) = Sheets("Sheet1").Range("Z" & i) 
Sheets("Sheet2").Range("C" & k) = Sheets("Sheet1").Range("Z" & i) 
Sheets("Sheet2").Range("D" & k) = Sheets("Sheet1").Range("Z" & i) 
k = k + 1 
Sheets("Sheet2").Range("A" & k) = Sheets("Sheet1").Range("AA" & i) 
Sheets("Sheet2").Range("B" & k) = Sheets("Sheet1").Range("AA" & i) 
Sheets("Sheet2").Range("C" & k) = Sheets("Sheet1").Range("AA" & i) 
Sheets("Sheet2").Range("D" & k) = Sheets("Sheet1").Range("AA" & i) 

Next 

End Sub 
+1

有关格式问题,请参阅http://stackoverflow.com/questions/25461314/vba-copy-cells-value-and-format。至于跳过空白的IF检查值将做到这一点。 –

+0

谢谢!这帮了一大笔钱。我将在IF声明中跳过空白。 – StrictlyBananas

回答

1

更换线喜欢:

Sheets("Sheet2").Range("A" & k) = Sheets("Sheet1").Range("Z" & i) 

与:

Sheets("Sheet1").Range("Z" & i).Copy Sheets("Sheet2").Range("A" & k) 

将保持颜色和字体。

+0

嗯,我不知道为什么我会让它变得复杂。非常感谢! – StrictlyBananas