关于全民一起vba提高篇中的if函数语句
能进帖子的大神好,是这样的,我在学习全民一起vba中的逻辑函数时,有不明白的地方因为我也是初学vba的,然后我希望在学习过程中能够理解透彻它所代表的意思,所以可能问的问题很小白,也很啰嗦,不好意思哈
是这样的,老师有一个教学视频中,有一段城市的数据,然后要实现的功能是隔城市涂色
原始数据是这样的,
实现功能是这样的
然后呢,老师教的时候给出的vba代码是这样的
中心的思想我能够理解,就是判断循环的那行是否与上一样是不同的,如果不同的就是true,然后再将它改成falsh,但是呢,我不明白,它的第一个tuse=flash是什么意思?然后它是如何定义的,中间的if tuse=true
我捋的就有点乱了
Sub 交替()
Dim tuse As Boolean, i As Long
tuse = False '一开始默认是不涂色的(这个默认tuse是false没有指定,这个是怎么出现的?)
i = 4 '从第四行循环,不从3开始是因为2是首行,3肯定是和2不同的,所以i从4开始,这里我是看得懂的
Do While Cells(i, 4) <> ""
'这里开始判断是否涂色的判断
If Cells(i, 2) <> Cells(i - 1, 2) Then '这里是判断4,2和3,2是不是不一样(这里我也看得懂,如果i是4,那就是判断单元格4,2和3,2是不是一样)如果是一样那就是true
If tuse = True Then
'就是这里的tuse是true,这里的tuse是true是怎么出来的?又没有说cells(i,2)指的是tuse,它突然来了一句tuse=true那就是变成falsh我就搞不懂了,是不是它里面省略写东西了?
tuse = False
Else
tuse = True
End If
End If
If tuse = True Then
Range(Cells(i, 2), Cells(i, 4)).Interior.Color = 15177845 'i,2到i,4单元格涂色,这里我也能懂
End If
i = i + 1
Loop
End Sub
tuse 是变量, tuse = False '一开始默认是不涂色的(这个默认tuse是false没有指定,这个是怎么出现的?)
翻译下大概就是 :
涂色 = 假 //假的意思就是不涂色
If tuse = True Then
'就是这里的tuse是true,这里的tuse是true是怎么出来的?又没有说cells(i,2)指的是tuse,它突然来了一句tuse=true那就是变成falsh我就搞不懂了,是不是它里面省略写东西了?
If tuse = True Then 意思大概就是:
如果 涂色 = 真则 怎么样 怎么样//真代表 给单元格涂色 tuse就是涂色的拼音 ;www;www 阿苏斯 发表于 2021-4-13 16:03
tuse就是涂色的拼音
这个tuse是我写的,老师写的是paint,{:1_907:}英文不好,而且我觉得这样我自己也清楚一点 tuse只是一个布尔变量,表示最前面的城市有没有设置背景色,如果设置了,后面的置成FALSE,表示不要背景,如果是FALSE,表示前面就的没有背景色,再发现不同城市就需要设置背景色了 Sub 交替()
Dim tuse As Boolean, i As Long
tuse = False '先设个变量tuse为假, 假就是代表if条件不满足
i = 4
Do While Cells(i, 4) <> "" '当单元格第I行 第4列不为空进入死循环
If Cells(i, 2) <> Cells(i - 1, 2) Then '判断单元格第二列的上一行和下一行不相等则进行判断
If tuse = True Then '如果tuse为真 则把tuse改为假
tuse = False
Else '如果tuse为假,则把tuse改为真
tuse = True
End If
End If
If tuse = True Then '你不明白的在这一步, 如果上面tuse改为了真就把I行的第2和第4列底色改为 15177845的颜色值
Range(Cells(i, 2), Cells(i, 4)).Interior.Color = 15177845
End If
i = i + 1 '变量自增
Loop
End Sub
只是用于记录前面城市是否已设置背景色 变成不同的城市后,当前格就需要与前面的城市是否设置背景色反着来,所以之前是false现在需要变成true,之前是true,现在就要变成false If Cells(i, 2) <> Cells(i - 1, 2) Then '城市由北京变成上海进入 if
If tuse = True Then 上面已经定义 涂色= false 所以不进入 if进入到else
tuse = False
Else 程序调到这里 执行
tuse = True
End If
End If
输出 涂色 =真所以 程序给上海 涂色了,
然后 到了 天津
If Cells(i, 2) <> Cells(i - 1, 2) Then '城市由上海变成天津进入循环
If tuse = True Then 由于北京到上海 使涂色的值=真了,所以进入 这个if
tuse = False涂色 =假
Else
tuse = True
End If
End If
所以 天津没有涂色
页:
[1]
2