使用VBA功能在Excel中修改单元格

时间:2018-07-26 12:54:22

标签: excel vba

下面的代码中的每个单元格修改行都会“引发”一个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

1 个答案:

答案 0 :(得分:0)

您不能使用从工作表调用的UDF(用户定义函数)来修改工作表的单元格。抱歉。 Excel将不允许这样做。每次尝试都会导致错误。

来自Microsoft Website

  

由工作表单元格中的公式调用的用户定义函数不能   更改Microsoft Excel的环境。这意味着这样的   函数不能执行以下任何操作:

     
      
  • 插入,删除或格式化电子表格中的单元格。
  •   
  • 更改另一个单元格的值。
  •   
  • 移动,重命名,删除工作表或将其添加到工作簿。
  •   
  • 更改任何环境选项,例如计算模式或屏幕视图。
  •   
  • 将名称添加到工作簿。
  •   
  • 设置属性或执行大多数方法。
  •   

您需要找到另一种致电bonjour的方式。也许使用按钮/形状,或者使用事件。