如果我使用以下代码,则为人:
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
?
提前致谢。
答案 0 :(得分:3)
有一种方法可以使用MSND's Guide
复制单元格的基本格式虽然以上可能是VBA的解决方法,但没有直接的方法来复制样式/格式化单元格。
Style
object确实存储了样式但没有方法(至少我不知道任何)允许你使用Style
对象来复制并在单元格之间应用格式。
使用VBA解决方法
一种方法是使用String
参数复制 from
和 to
即
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
答案 1 :(得分:1)
捕获或封装单元格完整格式的对象是样式。
请参阅 VBA帮助。