在带有 excel VBA 的 If 语句中不考虑条件



当超过以下代码时,不会考虑最后两个条件。你能帮忙理解为什么吗?此外,"r"范围为我检索了预期的结果+ 1行。我没有设法改变这一点。有什么想法吗?

Dim x As Range
Dim r As Range
Dim j As Range
 Set r = Range("J2").End(xlDown)
 Set j = Range("D2").End(xlDown)
    For Each x In Range("J2", r)
     If x.Value < 0 And j = ("long") Or j = ("") Then
     x.Offset(1, 0).Select
     ActiveCell.FormulaR1C1 = "=R[-1]C+RC[-1]"
   End If
  Next
 End Sub

仅供参考:代码中的 r 范围将是 J 列从 J2 开始的最后一个使用的单元格。两者之间不应有空单元格。

试试这个:

Sub posted()
Dim x As Range
Dim r As Range
'Dim j As Range
Set r = Range("J2").End(xlDown)
'Set j = Range("D2").End(xlDown)
For Each x In Range("J2", r)
If (x.Value < 0) And ((x.Offset(, -6).value = "long") _
Or (x.Offset(, -6).value = "")) Then
'''''''''dont know if you want cell value by long or number format of the cell''''
'If (x.Value < 0) And ((x.Offset(, -6).NumberFormat = "Number") _
Or (x.Offset(, -6) = "")) Then
'''''''''
x.Offset(1, 0).Select    
ActiveCell.FormulaR1C1 = "=R[-1]C+RC[-1]"
End If
Next
Set r = Nothing
End Sub

最新更新