如何复制单元格格式和样式
伙计们,如果我使用下面的代码:
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帮助 。