我在 Excel 中开发了一个小的 VBA 宏,它应该在工作簿更改期间将第 15 行中的单元格的值添加到第 6 行中的单元格的值中(在我的情况下,在第 15 行中输入一个数字并按下制表符)。
最初,我在 Excel 2013 中开发和使用它,然后我切换到 Mac 并在 Excel for Mac 2011 中使用它。现在,我已经安装了 Excel for Mac 2016,突然之间,宏不再起作用.
这是脚本:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C15:H15")) > 0 Then
Call copySub
End If
End Sub
Sub copySub()
Sheets("sheet1").Protect , UserInterFaceOnly:=True
For i = 3 To 8
Cells(6, i).Value = Cells(6, i).Value + Cells(15, i).Value
Cells(15, i).Value = 0
Next i
End Sub
当我在 Excel 2016 中输入一个值并按 Tab 键时,我收到运行时错误 91“对象变量或未设置块变量”。该错误似乎发生在该行中:
Cells(6, i).Value = Cells(6, i).Value + Cells(15, i).Value
在将总和分配给之前,我还尝试将总和存储在变量中Cells(6, i).Value
,但这也无济于事。
Microsoft 是否更改了工作表保护的逻辑,尤其是在参数UserInterFaceOnly
设置为 的情况下true
?或者这里发生了什么?
我希望你能帮助我。
谢谢,胖乎乎的