【发布时间】:2022-02-07 19:23:20
【问题描述】:
我是 VBA 新手,我不知道这里发生了什么。我运行这样一个简单的函数:
Function OnlyNumsRange(myRange As Range) As Range
Dim cell As Range, newRange As Range
Set newRange = myRange
Dim rng As Range
For Each rng In newRange
rng.Value = rng.Value + 10
Next
Set OnlyNumsRange = newRange
End Function
给定一个范围,该代码应该返回一个新范围,每个单元格上都有 +10。 这个函数非常适合 VBA 调试器,但是当我尝试在我的 excel 工作表上运行它时,它会引发 #VALUE!错误。提前谢谢你。
【问题讨论】:
-
你到底想做什么?您正在使用的数据示例以及所需的输出将使您的问题更容易理解。另外,您如何在“完美运行”的调试器中运行它?也许查看“How to Ask”以及如何创建minimal reproducible example 也会有所帮助。
-
从工作表调用的函数不应将值返回到其他单元格,只能返回到该函数所在的单元格。有一些方法可以绕过它,但这不是一个好习惯。
-
我有一列的值为 20、30... 但我不应该对这些单元格进行任何更改。我只想创建另一个修改了值的列。但如果它不是很好的做法,我会尝试以不同的方式制作它。谢谢你们!
-
如果您想要一个返回数组并因此溢出到多个单元格的函数,只需return an array。
-
谢谢,这是我第一次使用范围(和 vna),我不知道我没有使用正确的变量类型