在Excel单元格中使用时,VBA函数不会隐藏列

我正在尝试使用下面的函数来隐藏列

Function SCPArgsShowOnly() As Boolean Dim sColsToHide As String sColsToHide = "E:I,M:N" hideCols sColsToHide SCPArgsShowOnly = True End Function '====================================================== Sub hideCols(sCols As String) Dim sTemp() As String, allCols As String sTemp = Split(sCols, ",") allCols = "A:N" With Sheets("Functions") .Columns(allCols).Hidden = False For i = LBound(sTemp) To UBound(sTemp) .Columns(sTemp(i)).Hidden = True Next End With End Sub 

当我通过debugging器窗口运行时,它工作正常。 但是,当我在像这样的单元格中使用它时,它只会返回true = SCPArgsShowOnly()

我错过了什么?

Excel不允许调用从单元中执行某些操作的函数。
只有返回一个值的函数才可以使用,这似乎很合理。
想象一下,只要表单中的条目触发重新计算,您的列就会出现或消失?