保存范围内的所有信息并稍后恢复

有没有办法将字体分配给一个范围?

比方说,我有一个对象myFont。 我可以写:

with Range("A1").Font .Bold=myFont.Bold .Size=myFont.Size same with other properties end with 

但是有很多字体属性。 有没有办法做一些像Range(“A1”)。Font = myFont?

没有一个class轮要做你想做的事情。 下面的一个可能的捷径,但你真的还在迭代每个属性…

 Dim p, myFont, rng As Range 'populate myFont, rng For Each p In Array("Bold", "Color", "Size") 'for example CallByName rng.Font, p, VbLet, CallByName(myFont, p, VbGet) Next p 

要更改字体属性,请按照下面的代码。 具体来说,要更改范围(“A1”)的字体名称,请使用“Font.Name”,如下所示。

为了得到这个,我简单地logging了一个改变字体的macros,然后停止macros查看代码。 尝试录制macros,以便有时find您需要的属性。 希望这可以帮助。

 Sub ChangeFontCustomRange() ' Change Font Name 'Select the Range to change font to Range("A1").Select 'Change font properties, specifically, Font.Name With Selection.Font .Name = "Calibri" 'Type exact font name here .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With End Sub