我相信我所要做的很简单。我想迭代Range参数并更改该范围中每个单元格的值。Excel VBA:遍历范围参数和更改单元格值
Function test(thisRange As Range)
For Each c In thisRange.Cells
c.Value = 1
Next
End Function
以上是我想要做的一个简单的例子,但似乎没有工作。当我调试时,Excel似乎在碰到c.Value = 1
时发生错误。为什么这不起作用?
我相信我所要做的很简单。我想迭代Range参数并更改该范围中每个单元格的值。Excel VBA:遍历范围参数和更改单元格值
Function test(thisRange As Range)
For Each c In thisRange.Cells
c.Value = 1
Next
End Function
以上是我想要做的一个简单的例子,但似乎没有工作。当我调试时,Excel似乎在碰到c.Value = 1
时发生错误。为什么这不起作用?
这对我的作品
Option Explicit
Sub Sample()
Dim ret
ret = test(Sheets("Sheet1").Range("A1:A15"))
End Sub
Function test(thisRange As Range)
Dim c As Range
For Each c In thisRange.Cells
c.Value = 1
Next
End Function
顺便说一句,我们并不需要使用的功能。一个函数用于返回一个值。试试这个
Option Explicit
Sub Sample()
test Sheets("Sheet1").Range("A1:A15")
End Sub
Sub test(thisRange As Range)
Dim c As Range
For Each c In thisRange.Cells
c.Value = 1
Next
End Sub
是的,这确实有效。再次感谢你,我把这个函数称为UDF,这是我的问题。 – stevebot
是的,正如我在之前的评论中提到的那样,您不能将其用作UDF :) –
它适合我。你打电话过得怎么样?希望不是从工作表中作为UDF? –
确保您将c声明为Range。 – RBarryYoung
是否需要循环每个单元格?你可以使用'thisRange.Value = 1' – user3357963