5

私がやろうとしていることはとても簡単だと思います。Rangeパラメーターを繰り返し処理し、その範囲内の各セルの値を変更したいと思います。

Function test(thisRange As Range)
    For Each c In thisRange.Cells
         c.Value = 1
    Next
End Function

上記は私がやりたいことの簡単な例ですが、うまくいかないようです。これをデバッグすると、Excelがヒットしたときにエラーをスローしているようc.Value = 1です。なぜこれが機能しないのですか?

4

1 に答える 1

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

ところで、関数を使用する必要はありません。関数は値を返すために使用されます。これを試して

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
于 2012-10-04T20:07:36.630 に答える