构建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位数率时出现其他问题,因此不是一个好的整体解决方案。有人有主意吗?