xlPasteFormats后缺少VBA Excel颜色索引

k7fdbhmy  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(111)

我想让我的格式完全恢复原样。

在初始文档中,每隔两行显示为灰色,但在执行下面的代码后,颜色消失了。

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步几乎所有的行是灰色的。

dffbzjpn

dffbzjpn1#

看起来shTarget.Range("A:E").ColorIndex = 15正在创建错误?
不如

With shTarget
    
        .Range(.Cells(i, 1), .Cells(i, 5)).Interior.ColorIndex = 15
        
    End With

我在我工作电脑上看不到你的照片,所以我猜猜看:-)
在任何情况下,您都需要在ColorIndex之前使用Interior

相关问题