即使满足条件,OR 语句也不起作用?

扎克攻击

概述

我目前正在研究一个简单的函数来帮助验证数组的起始位置。我正在使用 DO 语句,然后只是偏移活动单元格,直到满足我的 DO 语句的条件。

代码

Public Function ArrayStart() As Variant

    Range("A3").Select


    Do


        ActiveCell.Offset(1, 0).Select


    Loop While (ActiveCell.Value <> "Date" Or _
                ActiveCell.Value <> "Open" Or _
                ActiveCell.Value <> "High" Or _
                ActiveCell.Value <> "Low" Or _
                ActiveCell.Value <> "Close" Or _
                ActiveCell.Value <> "Adj Close" Or _
                ActiveCell.Value <> "Volume")

    ArrayStart = ActiveCell.Row


End Function

Excel 工作表中的数据

Date        Open    High     Low    Close   Adj Close  Volume
12/22/1998  19.05   19.05   18.85   18.94     9.98     55900
12/23/1998  18.86   19.22   18.86   19.22     10.13    78800
12/24/1998  19.22   19.34   19.15   19.34     10.20    43800
12/28/1998  19.33   19.33   19.04   19.09     10.06    51900
12/29/1998  19.12   19.29   18.89   19.29     10.17    100800
12/30/1998  19.19   19.32   19.09   19.22     10.13    154600
12/31/1998  19.22   19.24   19.04   19.04     10.04    65400

日期位于“A4”范围内,所有数据的整个范围都位于“A4:G11”范围内

问题

该代码一直工作到它到达 Loop While 部分,即使活动单元格是“A4”,即“日期”,它也不会识别它,并将继续保持循环。

当我取出 OR 条件并使用此代码时,它运行良好

Loop While (ActiveCell.Value <> "Date")

我正在运行相同的整体代码,但消除了 OR 语句并且效果很好,我没有收到任何错误,我只是不明白为什么它不起作用。此外,当我将鼠标悬停在 vba 窗口中的 activecell.value 上时,它会在到达单元格“A4”时显示“日期”???

米格

尝试

Public Function ArrayStart() As Variant
    Range("A1").Select
    Do
        ActiveCell.Offset(1, 0).Select
    Loop Until (ActiveCell.Value = "Date" Or _
                ActiveCell.Value = "Open" Or _
                ActiveCell.Value = "High" Or _
                ActiveCell.Value = "Low" Or _
                ActiveCell.Value = "Close" Or _
                ActiveCell.Value = "Adj Close" Or _
                ActiveCell.Value = "Volume")
    ArrayStart = ActiveCell.Row
End Function

避免使用ActiveCell,请参阅了解详情。更高效的代码将是

Public Function ArrayStartMMM() As Variant
    Dim rng As Range
    Set rng = Range("A1")
    Do
        Set rng = rng.Offset(1, 0)
    Loop Until (rng.Value = "Date" Or _
                rng.Value = "Open" Or _
                rng.Value = "High" Or _
                rng.Value = "Low" Or _
                rng.Value = "Close" Or _
                rng.Value = "Adj Close" Or _
                rng.Value = "Volume")
    ArrayStart = rng.Row
End Function

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

array_rand在条件语句中不起作用

来自分类Dev

多重条件,如果else语句不起作用

来自分类Dev

Python if语句即使满足条件也会跳过代码

来自分类Dev

条件不起作用

来自分类Dev

关于jsp的条件语句不起作用

来自分类Dev

用于检查null的条件语句不起作用

来自分类Dev

在R中使用条件elseif语句但不起作用

来自分类Dev

如果条件在SQL函数中不起作用,则返回语句

来自分类Dev

如果条件,Return语句在Python内部不起作用

来自分类Dev

条件语句在php中不起作用

来自分类Dev

即使满足条件,也不会返回“ if”语句

来自分类Dev

即使满足该条件,Ansible的“ when”条件也不起作用

来自分类Dev

IE9条件语句不起作用?

来自分类Dev

即使在jQuery中不满足条件,也要执行else语句

来自分类Dev

为什么此条件语句不起作用,而似乎做同样事情的if语句是否起作用?

来自分类Dev

JS条件语句不起作用

来自分类Dev

有条件的if语句不起作用

来自分类Dev

Python if语句即使满足条件也会跳过代码

来自分类Dev

PDO fetch和fetchAll与条件语句不起作用

来自分类Dev

即使条件不满足,如果语句始终在运行,也很奇怪

来自分类Dev

条件语句不起作用

来自分类Dev

具有多个条件的 if 语句不起作用

来自分类Dev

条件 PDO 删除语句可能不起作用

来自分类Dev

即使满足条件,if 循环中的过程也不起作用

来自分类Dev

如果语句具有多个条件不起作用

来自分类Dev

jQuery 'OR' 语句(' | | ')在 if 条件下不起作用

来自分类Dev

logstash 输出中的条件语句不起作用

来自分类Dev

条件语句不起作用 - 数组

来自分类Dev

max语句中的SQL多个条件不起作用

Related 相关文章

热门标签

归档