在Excel中设置范围时,VBA失败

使用来自MSDN的示例,我试图在Excel 2007中设置一个单元格的值。下面是我采取的步骤:

  1. 在Excel选项中,select“ Enable all Macro's和“ Trust access to VBA object model
  2. 创build一个新的Excel工作簿。
  3. 添加一个新的VBA模块。
  4. 插入以下function:

     Function MyTest(rg As Range) rg.Value = 1 MyTest = 1234 End Function 
  5. 将公式=MyTest(B1)到A1的单元格中。

当MyTest的第一行被执行时,debugging器简单的失败。 没有任何错误,它会停止debugging并显示#VALUE! 在A1。 B1保持空着。

我试过设置.Formula而不是.Value 。 我试过使用ActiveSheetWorksheets["Sheet1"]来访问Worksheets。 什么可能是这个错误的原因?

从单元格公式调用的VBA函数不允许修改单元格内容。 这个限制是适当的,以便Excel可以跟踪依赖关系。

如果您需要修改单元格内容,则必须通过其他一些机制调用VBA,例如用户表单。