我之前没有学过VBA,可是因为工作中要制作一个template format逼不得已,现学现卖了下面这段程序。我也不是完全不会程序,不然凭空照着别的VBA格式再原创下面这段程序,我的智力还是达不够的。感谢C语言中启发我的逻辑!最后再感叹一句,有点程序基础真的不错,广大上班族们去学一门吧。会真的方便日后工作的。
我需要做到下面的效果,按照A列填充背景颜色,但是数字是跳跃的。所以简单的 number Mod 2 是不行的。
于是我写了下面这段程序,思路也附上了。
Sub ChangeRowRGB()
Dim i As Integer
Dim k As Integer
Dim flag As Integer
Dim arr(0 To 24) As Integer '用数组录入flag,数组容量个数为25,从零开始算
k = 0
'循环开始
For i = 1 To 25 Step 1
If Cells(i, 1) = Cells((i + 1), 1) Then '比如,当A2 = A3的时候,k值不变
k = k + 0
ElseIf Cells(i, 1) <> Cells((i + 1), 1) Then '循环去到A4≠A5的时候,k值增1
k = k + 1
End If
flag = (k Mod 2) 'flag只有1和0
arr(i - 1) = flag '比如形成pattern [0,0,0,1,1,1,0,0,0...]
Next i
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For m = 0 To 24 '试图用上面的数组pattern填充对应行的背景颜色
If arr(m) = 0 Then
Sheet1.Rows(m + 2).Interior.Color = RGB(205, 222, 236)
ElseIf arr(m) = 1 Then
Sheet1.Rows(m + 2).Interior.ColorIndex = 2
End If
Next m
End Sub
因为完全无中生有思路,我想了很久...脑筋还是不灵光啊。
以此纪念我的第一个VBA代码编写。