1
VBAには、いくつかの列のすべての行をループし、2行ごとの違いを見つけてその値を配列に格納するコードを記述しています。空のセルが操作に含まれないようにするためにforループにifステートメントを追加しました。これは最初の5つの列では機能しますが、6番目の列では機能しません。VBA Excelで正しく動作しない条件文
Dim Datarray As Variant
Dim LR As Long, LR1 As Long
Dim p As Integer, i As Integer
LR1=LR-1
ReDim R(LR1) As Variant
For i = 1 To DateTime_Column
LR = Cells(Rows.Count, i).End(xlUp).Row
Datarray = Range(Cells(1, i), Cells(LR, i))
For p = 2 To LR1
If Datarray(p, 1) And Datarray(p + 1, 1) <> Empty Then
R(p) = Abs(Datarray(p + 1, 1) - Datarray(p, 1))
End If
Next p
Rave = WorksheetFunction.Average(R) ***Error occurs here because R is empty***
Next i
誰かが私のif文が書き込まれる方法に間違いを見ますか?このコードは、第6列のセルが空でないときには空であると考えるようです。私はDatarrayをチェックし、すべてのスポットに値が入っています。
'ReDim'文の前に' LR'と 'LR1' *を計算するべきではありませんか?今、「R」はゼロ要素にディメンションされているように見えます。また、 'Option Explicit'ステートメントをコードの先頭に追加すると、コンパイラは追加の問題にフラグを立てることができます。 – xidgel