gpt4 book ai didi

Excel VBA 将值分配给用户定义函数的命名范围失败错误 1004

转载 作者:行者123 更新时间:2023-12-04 22:08:10 26 4
gpt4 key购买 nike

我在模块中有一个功能。函数定义如下:

Public Function CourseSetup(ByVal SROfferId As Integer) as string

调用该函数时,以下行失败:
Worksheets("CourseEvaluation").Range("CourseName").value = "1234" 

失败并出现错误 1004。

子(宏)中的同一行有效。 CourseName是一个名为 ranged 的​​单元格。获取上述范围的值是可行的。

在即时窗口中:
?Worksheets("CourseEvaluation").Range("CourseName").value 

返回范围内的当前值。

最佳答案

从工作表调用的函数不能操作除了输入公式的事件单元格之外的工作表对象。

这保留了公式中的依赖关系,防止循环引用错误等。

作为一般规则 ,使用子例程来操作对象,并使用公式返回值(无论是单元格引用还是变量)。

一个异常(exception)是从子例程中调用的 UDF 可以操作工作表对象,但这可能不是一个好习惯。将您的函数限制为将值返回到变量/单元格,并使用子例程来操作对象。

进一步阅读:

Making Excel functions affect 'other' cells

http://www.excelforum.com/excel-programming-vba-macros/477157-changing-cell-values-from-within-udf.html

http://www.ozgrid.com/Excel/free-training/ExcelVBA1/excelvba1lesson21.htm

关于Excel VBA 将值分配给用户定义函数的命名范围失败错误 1004,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16094600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com