下面的代码中的每个单元格修改行都会“引发”一个1004错误。
通过单元格以这种方式调用以下函数:=bonjour()
这是代码:
Public Function bonjour() As Integer
On Error GoTo Handler
Range("B2").Value = 41
Cells(2, 2) = 42
ThisWorkbook.Sheets("Feuil1").Range("B2").Value = 43
ThisWorkbook.Sheets("Feuil1").Cells(2, 2) = 44
Handler:
If Err.Number <> 0 Then
Debug.Print ("Error n° " & Err.Number & " - " & Err.Description)
Err.Clear
Resume Next
End If
bonjour = 45
End Function
答案 0 :(得分:0)
您不能使用从工作表调用的UDF(用户定义函数)来修改工作表的单元格。抱歉。 Excel将不允许这样做。每次尝试都会导致错误。
由工作表单元格中的公式调用的用户定义函数不能 更改Microsoft Excel的环境。这意味着这样的 函数不能执行以下任何操作:
- 插入,删除或格式化电子表格中的单元格。
- 更改另一个单元格的值。
- 移动,重命名,删除工作表或将其添加到工作簿。
- 更改任何环境选项,例如计算模式或屏幕视图。
- 将名称添加到工作簿。
- 设置属性或执行大多数方法。
您需要找到另一种致电bonjour
的方式。也许使用按钮/形状,或者使用事件。