我正在尝试将单元格的字体设置为斜体,我见过的所有 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 的唯一方法是从功能区手动将单元格设置为斜体,但显然,这不是我想要的。
事情没那么简单。使用
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