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

时间:2017-12-14 04:25:18

标签: excel vba excel-vba

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

假设我有一个对象myFont。我可以写:

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

但是有很多字体属性。有没有办法做类似的事情  范围( “A1”)。字体= myFont?

2 个答案:

答案 0 :(得分:1)

没有任何一个班轮可以做你想做的事。下面是一个可能的快捷方式,但您仍然在迭代每个属性...

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

答案 1 :(得分:0)

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

为了得到这个,我只是记录了一个我更改字体的宏,然后停止宏来查看代码。尝试录制宏以便有时找到您需要的属性。希望这可以帮助。

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