|
发表于 2012-3-12 14:42
|
显示全部楼层
本楼为最佳答案
本帖最后由 bb75308973 于 2012-3-12 15:11 编辑
测试看看
- Sub 第一题()
- Dim n As Integer, i As Integer
- Columns("O").Clear
- n = Range("K65536").End(xlUp).Row
- For i = 4 To n
- If Range("M" & i) = Range("K" & (i + 1)) Then '判断
- Range("O" & (i + 1)) = Format(Range("L" & (i + 1)) & Range("M" & (i + 1)), "00") '符合条件输出结果
- End If
- Next
- End Sub
复制代码- Sub 第二题()
- Dim n As Integer, i As Integer, x As Integer
- Dim rg As Range, rg1 As Range
- Dim arr(0 To 9)
- Application.ScreenUpdating = False
- Columns("AB").Clear
- n = Range("X65536").End(xlUp).Row
- On Error Resume Next
- For i = 5 To n '从5开始这样就可以不用计算最后一行下面的那行没有数据的行
- Set rg = Range(Range("X" & i), Range("Z" & (i - 1))) '设定下面要查找的范围
- For x = 0 To 9 '查找0到9的每一个值,放到相应的数组里
- Set rg1 = rg.Find(x, , , xlWhole)
- If rg1 Is Nothing Then
- arr(x) = "空" '如果查找不到的话默认会等于0,不利于判断,所以这里弄个标识"空"
- Else
- arr(x) = x
- End If
- Next
-
- If arr(0) <> "空" And arr(5) <> "空" Then Range("AB" & i) = 16
- If arr(1) <> "空" And arr(6) <> "空" Then Range("AB" & i) = 27
- If arr(2) <> "空" And arr(7) <> "空" Then Range("AB" & i) = 38
- If arr(3) <> "空" And arr(8) <> "空" Then Range("AB" & i) = 49
- If arr(4) <> "空" And arr(9) <> "空" Then
- Range("AB" & i).NumberFormat = "00"
- Range("AB" & i) = 5
- End If
- Set rg = Nothing '养成习惯将对像清空,不然会影响下一个循环的结果
- Set rg1 = Nothing
- Next
- On Error GoTo 0
- Application.ScreenUpdating = True
- End Sub
复制代码
|
评分
-
查看全部评分
|