在Excel中设置范围时VBA失败

Mat*_*att 0 excel vba function range excel-vba

使用MSDN中的示例我正在尝试在Excel 2007中设置单元格的值.以下是我采取的步骤:

  1. 在Excel选项中选择Enable all Macro'sTrust access to VBA object model.
  2. 创建一个新的Excel工作簿.
  3. 添加新的VBA模块.
  4. 插入以下功能:

    Function MyTest(rg As Range)
        rg.Value = 1
        MyTest = 1234
    End Function
    
    Run Code Online (Sandbox Code Playgroud)
  5. 将公式添加=MyTest(B1)到A1处的单元格.

当执行第一行MyTest时,调试器简单失败.没有任何错误,它会停止调试并#VALUE!在A1中显示.B1仍然是空的.

我试过设置.Formula而不是.Value.我尝试过使用ActiveSheetWorksheets["Sheet1"]访问工作表.可能是导致此错误的原因是什么?

Dav*_*nan 6

不允许从单元格公式调用的VBA函数修改单元格内容.此限制已到位,以便Excel可以跟踪依赖关系.

如果需要修改单元格内容,则必须通过其他机制(例如用户表单)调用VBA.