excel在工作表保护状态下没能宏执行数组公式?

Sub 计算()
'
' 计算 宏
'
Range("CB5").Select
Selection.Copy
Range("CB6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("BV8").Select
Selection.FormulaArray = Range("CB6").Value
End Sub
在工作表保护状态下执行以上宏,Selection.FormulaArray会出错

在工作表保护状态下,VBA无法在被保护的单元格中写入公式,只能写入值。因此,当执行 Selection.FormulaArray 语句时会出错。
解决此问题的方法之一是,在执行 Selection.FormulaArray 之前,将工作表的保护状态解除。可以在宏的开头添加以下语句:
ActiveSheet.Unprotect
然后,在执行完 Selection.FormulaArray 之后,再将工作表的保护状态重新启用。可以在宏的末尾添加以下语句:
ActiveSheet.Protect
这样,在保护状态下也可以执行宏并正确设置单元格的公式。
完整的修改后的代码如下:
Sub 计算()
温馨提示:答案为网友推荐,仅供参考
相似回答