在Excel中设置范围时VBA失败

时间:2011-07-17 13:53:21

标签: excel function vba excel-vba range

使用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
    
  5. 将公式=MyTest(B1)添加到A1的单元格中。

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

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

1 个答案:

答案 0 :(得分:6)

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

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