条件语句在VBA Excel中无法正常工作

时间:2016-07-20 15:27:56

标签: arrays excel excel-vba for-loop conditional vba

我在VBA中编写一个代码,循环遍历几列的每一行,找到每两行之间的差异并将该值存储在数组中。我在for循环中添加了一个if语句,以避免在操作中包含空白单元格,它适用于前五列但不适用于第六列。

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语句的编写方式有什么问题吗?代码似乎认为第六列中的单元格在没有时是空的。我检查了Datarray,每个地方都有值。

1 个答案:

答案 0 :(得分:1)

您的If声明看起来不对。如果您需要检查是否满足两个条件,请使用:

If Datarray(p, 1) <> Empty And Datarray(p + 1, 1) <> Empty