引数として渡された範囲のn番目のセルからなる範囲を返す関数を作成しようとしています。各n番目のセルから範囲を作成する
Function OFFSETRANGE(AREA As Range, Optional STEP As Integer = 1) As Range
Dim Counter As Integer
Dim TempRange As Range
For Each rCell In AREA.Cells
If Counter Mod Counter = 0 Then
MsgBox ("In loop" & Counter & " " & rCell)
TempRange = Application.Union(TempRange, rCell)
End If
Next
OFFSETRANGE = TempRange
End Function
この機能を使用するときはいつでも#VALUEエラーが発生します。私はあなたがここに
If Counter Mod Counter = 0 Then
しかし、このように値の誤差を投げ値をCounter
持っていませんが何をしようとしてわからない間違った
あなたは 'Counter'の値が何であるかをどこかにあなたのコード内で宣言していましたか? 'Area.Cells'の各セルを' Debug.Print'するだけで、それぞれのセルにデータがあることを確認します。 – hod
空のRange(Nothing)でUnionを使うことはできず、あなたは 'Counter'をインクリメントしていません。ワークシートからではなくVBAのSubから呼び出すことによって、関数をデバッグします。 –
どのように機能を使用していますか? – jsotola