我想让我的格式完全恢复原样。
在初始文档中,每隔两行显示为灰色,但在执行下面的代码后,颜色消失了。
Sub CopyData(ByRef shSource As Worksheet, shTarget As Worksheet)
Const VHead As String = "A1:H1"
Const VMBom As String = "A2:H100"
shSource.Range(VHead).Copy
With shTarget.Range("A1")
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
End With
Dim lRow As Long
Dim i As Integer
lRow = shTarget.Cells(Rows.Count, "A").End(xlUp).Row + 1
shSource.Range(VMBom).Copy
With shTarget.Range("A" & lRow)
.PasteSpecial xlPasteValuesAndNumberFormats
.PasteSpecial xlPasteFormats
.RemoveDuplicates Columns:=1, Header:=xlYes
.Sort Key1:=.Columns(1), Order1:=xlAscending, Header:=xlYes
.WrapText = True
End With
shTarget.Columns("A").ColumnWidth = 6.11
shTarget.Columns("B").ColumnWidth = 50
shTarget.Columns("C").ColumnWidth = 50
shTarget.Columns("D").ColumnWidth = 5.44
shTarget.Columns("E").ColumnWidth = 5.89
shTarget.Columns("F").ColumnWidth = 9
shTarget.Columns("G").ColumnWidth = 21.22
shTarget.Columns("H").ColumnWidth = 10.89
shTarget.Rows.EntireRow.AutoFit
For i = 2 To lRow Step 2
shTarget.Range("A:E").ColorIndex = 15
Next
' Reset the clipboard.
Application.CutCopyMode = xlCopy
末端子组件
我尝试每隔两行进行一次循环,并重新应用丢失的COlorIndex,但我得到了一个错误:
对象不支持此属性或方法
有没有什么方法可以让我100%正确地传输格式?
更新:
应用以下代码后:
For i = 3 To lRow Step 4
shTarget.Range(shTarget.Cells(i, 1), shTarget.Cells(i,
5)).Interior.Color = RGB(235, 235, 235)
shTarget.Range(shTarget.Cells(i, 7), shTarget.Cells(i,
8)).Interior.Color = RGB(235, 235, 235)
Next I
我得到了颜色,但是是以一种不规则的方式。我故意把第4步放在这里,向你展示它看起来像什么。对于第2步,几乎所有的行都是灰色的。
1条答案
按热度按时间c0vxltue1#
看起来
shTarget.Range("A:E").ColorIndex = 15
正在创建错误?不如
我在我工作电脑上看不到你的照片,所以我猜猜看:-)
在任何情况下,您都需要在
ColorIndex
之前使用Interior
。