有没有办法将字体分配给范围?
假设我有一个对象myFont。我可以写:
with Range("A1").Font
.Bold=myFont.Bold
.Size=myFont.Size
same with other properties
end with
但是有很多字体属性。有没有办法做类似的事情 范围( “A1”)。字体= myFont?
答案 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