如何复制单元格格式和样式

伙计们,如果我使用下面的代码:

dim Defaultcol As Long Defaultcol = Sheets("Whatever").Cells(1, 1).Interior.Color 

我可以从单元格中获取颜色格式。

我也可以写些类似的东西吗?

 dim FullFormat as object (Or dim FullFormat as cellformat) set FullFormat = Sheets("Whatever").Cells(1, 1).formats 

并获得一个单元格的所有格式在一个对象?

或者可能

 dim sourcecell as cell set sourcecell = Sheets("Whatever").Cells(1, 1) 

然后有我可以使用的属性sourcecell.formats

提前致谢。

有一种方法可以使用“ MSND指南”复制单元格的基本格式

虽然上面可能是一个解决方法,当涉及到VBA没有直接的方式复制单元格样式/格式。

的确, Style对象存储样式,但是没有方法存在( 至less我没有意识到 ),它允许你使用Style对象在单元之间复制和应用格式。

有一个使用VBA的解决方法

一种方法是使用String参数from和复制即。

 Private Sub CopyFormatting(fromRng As String, toRng As String) Application.ScreenUpdating = False Dim tmpVal tmpVal = Range(toRng) Range(fromRng).Copy Range(toRng) Range(toRng) = tmpVal Application.ScreenUpdating = True End Sub 

并称之为

 Sub Main() CopyFormatting "A1", "A10" End Sub 

这将复制的格式和保留价值不像许多在线指南,只复制和粘贴单元格


一个更好的方法是传递Range对象的引用,因为它可以让你在不同的表单之间使用它。

 Option Explicit Sub Main() Dim rng1 As Range, rng2 As Range Set rng1 = Sheets(1).Range("B3") Set rng2 = Sheets(2).Range("A1") CopyFormatting rng1, rng2 End Sub Private Sub CopyFormatting(fromRng As Range, toRng As Range) Application.ScreenUpdating = False Dim tmpVal tmpVal = toRng fromRng.Copy toRng toRng = tmpVal Application.ScreenUpdating = True End Sub 

捕获或封装单元格的完整格式的对象是其Style

请参阅VBA帮助