我相信我想要做的很简单。我想遍历Range参数并更改该范围内每个单元格的值。

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

10-04 15:46