我目前工作的一個簡單的功能,以幫助驗證我的數組中的起始位置。我正在使用DO語句,然後直接抵消活動單元格,直到符合我的DO語句的條件。
代碼在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」 和所有的數據的整個範圍
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
數據位於範圍「 A4:G11"
問題
代碼工作,直到它到達河套雖然部分,即使activecell是「A4」,這是「日期」它不會承認它是這樣,並將繼續不斷循環。
當我走OR開出的條件,並使用此代碼,它完美的作品
Loop While (ActiveCell.Value <> "Date")
我運行相同的整體代碼,但消除了,報表和它的偉大工程,我越來越沒有錯誤,我只是不能理解爲什麼它不工作。另外,當我將鼠標懸停在vba窗口中的activecell.value上時,它顯示「Date」,當它到達單元格「A4」時?
考慮一個更簡單的語句 - 'x <>「A」或x <>「B」'。如果x'「A」'那麼它是不是'「B」'這樣的語句變成'虛假或TRUE'這是'真'。如果x'「B」'那麼它是不是'「A」'這樣的語句變成'真或FALSE'這是'真'。如果x'「C」'那麼它是不是'「A」'或'「B」'這樣的語句變成'真或TRUE'這是'真'。換句話說,它總是**'真'。 – YowE3K