構建VBA程序時,我遇到了一個奇怪的問題。該程序需要一個CSV文件並進行一些重新格式化,然後再將其吐出。我遇到的問題是程序認爲兩位數字大於3位數字。例如,它認爲60大於120,但承認60小於80,而100小於120下面是我的代碼片段:VBA中2位數字大於3位數字的問題
if Rate < Miles and (Miles > 60 and Miles <=80) then
Rate = 80
elseif Rate < Miles and (Miles > 80 and Miles <=120) then
Rate = 120
End if
我的文件AA CSV建立這樣的:
90210,90201,60,61
90201,90210,60,100
在CSV文件中,每行中的最後兩個數字是我關注的內容。 60年代是Rate,61和100是Miles。當我運行這個程序時,它會經過第一行並將Rate從60更改爲80,這是正確的。問題是,當它運行第二行時,它將60保留爲60而不是將其更改爲120.
我在代碼的這一部分放了一個斷點,並且變量正確讀取,速率等於60 Miles等於100,但是跳過了Rate = 120
部分。作爲測試,我將Rate < Miles
更改爲Rate > Miles
,果然它讀取rate = 120
行,因爲它現在認爲60是小於100.當然,進行此更改導致運行3位數率時出現其他問題,因此不是一個好的整體解決方案。有人有主意嗎?