Font.Italic 属性在 Excel 2013 中不起作用

问题描述 投票:0回答:1

我正在尝试将单元格的字体设置为斜体,我见过的所有 VBA 参考资料都告诉我要这样做

cell.Font.Italic = True
如下:

Function Test(testcell As Range)
    testcell.Font.Italic = True
    Test = testcell.Font.Italic
End Function

但是,除非传入的单元格已经是斜体,否则该函数始终返回 FALSE,并且不会更改相关单元格。

我尝试使用 FontStyle 属性,甚至对单元格值进行硬编码,但单元格拒绝更改。

Function Test(testcell As Range)
    Range("J95").Font.FontStyle = "Italic"
    Test = testcell.Font.Italic
End Function

让函数返回 TRUE 的唯一方法是从功能区手动将单元格设置为斜体,但显然,这不是我想要的。

excel vba excel-2013
1个回答
0
投票

事情没那么简单。使用

UDF
方法间接调用的
Evaluate
可以比常规
UDF
做更多的事情,但它们也不具备宏的全部功能。除此之外,他们无法设置
Italic
Bold
字体的属性。
在这种情况下,请使用另一种解决方法来运行宏。例如,可以通过使用
Calculate
事件来完成。
在标准模块中,需要放入代码:

Public italcell As Range
Function CTest(testcell As Range)
    Set italcell = testcell
    CTest = True
End Function

在工作表模块中,

Calculate
事件处理程序:

Private Sub Worksheet_Calculate()
   If Not italcell Is Nothing Then _
      italcell.Font.Italic = True
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.