Excel VBA:迭代范围参数并更改单元格值

ste*_*bot 6 excel vba excel-vba

我相信我想做的事情非常简单.我想迭代一个Range参数并更改该范围内每个单元格的值.

Function test(thisRange As Range)
    For Each c In thisRange.Cells
         c.Value = 1
    Next
End Function
Run Code Online (Sandbox Code Playgroud)

以上是我想要做的一个简单示例,但似乎不起作用.当我调试它时,Excel似乎在它命中时抛出错误c.Value = 1.为什么这不起作用?

Sid*_*out 2

这对我有用

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
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我们不需要使用函数。函数用于返回一个值。尝试这个

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
Run Code Online (Sandbox Code Playgroud)