Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4506|回复: 17

[已解决]填色2(填色1的升级)!

[复制链接]
发表于 2014-1-26 02:45 | 显示全部楼层 |阅读模式
本帖最后由 wszbd 于 2014-1-26 20:03 编辑



填色2.rar (2.99 KB, 下载次数: 26)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-1-26 09:10 | 显示全部楼层
可能50%的朋友进来立刻走了,因为无法直接看到问题的说明和截图(已给你改了)。
虽然麻烦些了,但比起能够解决问题,还是值得的。


题意懂了
1)不处理ET列?!
2)数据源再多点是怎样子的?
回复

使用道具 举报

发表于 2014-1-26 10:11 | 显示全部楼层
请测试:
  1. Sub 填色()
  2.     Dim arr, brr, iRow%, i%, j%, k%, Num%
  3.     With Sheets(1)
  4.         arr = .Range("en1:ep1")
  5.         brr = .Range("et3").CurrentRegion
  6.         For i = 2 To UBound(brr, 2)
  7.             For k = 1 To UBound(arr, 2)
  8.                 Num = Mid(arr(1, k), i - 1, 1)
  9.                 For j = 1 To UBound(brr)
  10.                     If brr(j, i) = Num Then
  11.                         If iRow < j Then iRow = j
  12.                         Exit For
  13.                     End If
  14.                 Next
  15.             Next
  16.         Next
  17.         .Range(.Cells(iRow + 3, "eu"), .Cells(UBound(brr) + 2, "ew")).Interior.Color = RGB(153, 204, 255)
  18.     End With
  19. End Sub
复制代码
回复

使用道具 举报

发表于 2014-1-26 12:00 | 显示全部楼层
附件请测试
  1. Sub aaa()
  2. Dim arr, arr1, i&, j&, n&, s$
  3. arr = Application.Transpose([et3].CurrentRegion)
  4. arr1 = [en1:ep1]
  5. For j = 1 To 3
  6.   s = Join(Application.Index(arr, j + 1, 0), "")
  7.   For i = 1 To 3
  8.     If n < InStr(s, Mid(arr1(1, i), j, 1)) Then n = InStr(s, Mid(arr1(1, i), j, 1))
  9.   Next i
  10. Next j
  11. Range(Cells(n + 3, "eu"), Cells(UBound(arr, 2) + 2, "ew")).Interior.ColorIndex = 37
  12. End Sub
复制代码

填色2.zip

8.24 KB, 下载次数: 2

回复

使用道具 举报

 楼主| 发表于 2014-1-26 12:07 | 显示全部楼层
eaglexs 发表于 2014-1-26 10:11
请测试:

有点问题,老师看看: 填色2.rar (9.02 KB, 下载次数: 4)
回复

使用道具 举报

 楼主| 发表于 2014-1-26 12:12 | 显示全部楼层
大灰狼1976 发表于 2014-1-26 12:00
附件请测试

有点问题,老师看看: 填色2.rar (9.09 KB, 下载次数: 2)
回复

使用道具 举报

 楼主| 发表于 2014-1-26 14:31 | 显示全部楼层
爱疯 发表于 2014-1-26 09:10
可能50%的朋友进来立刻走了,因为无法直接看到问题的说明和截图(已给你改了)。
虽然麻烦些了,但比起能够 ...

1)不处理ET列?!
答:是的,不处理ET列。


2)数据源再多点是怎样子的?
答:因为EN1:EP1是三位数,所以先就这么多数据。


谢谢!!!
回复

使用道具 举报

发表于 2014-1-26 15:12 | 显示全部楼层
wszbd 发表于 2014-1-26 12:07
有点问题,老师看看:

能否加上这样的语句:range(“EU3:EW12")

原始的数据在EU1:EW2间没有文字数据,我用range("eu3").currentregion就能把ET3:EW12之间的数据包括起来。
现在的数据,你在EU1:EW2之间加了文字,再用currentregion就不太合适了。
改一下brr引用数据源的方法,就没有问题了
  1. Sub 填色2()
  2.     Dim arr, brr, iRow%, i%, j%, k%, Num%
  3.     With Sheets(1)
  4.         arr = .Range("en1:ep1")
  5.         brr = .Range("et3", .Cells(Rows.Count, "ew").End(xlUp)).Value
  6.         For i = 2 To UBound(brr, 2)
  7.             For k = 1 To UBound(arr, 2)
  8.                 Num = Mid(arr(1, k), i - 1, 1)
  9.                 For j = 1 To UBound(brr)
  10.                     If brr(j, i) = Num Then
  11.                         If iRow < j Then iRow = j
  12.                         Exit For
  13.                     End If
  14.                 Next
  15.             Next
  16.         Next
  17.         .Range(.Cells(iRow + 3, "eu"), .Cells(UBound(brr) + 2, "ew")).Interior.Color = RGB(153, 204, 255)
  18.     End With
  19. End Sub
复制代码
回复

使用道具 举报

发表于 2014-1-26 15:22 | 显示全部楼层
wszbd 发表于 2014-1-26 12:07
有点问题,老师看看:

能否加上这样的语句:range(“EU3:EW12")

你要这样也可以。
把代码第5-6行改成
  1.         brr = .Range("eu3:ew12")
  2.         For i = 1 To 3
复制代码
只是这样看起来少了一点灵活性
回复

使用道具 举报

发表于 2014-1-26 16:10 | 显示全部楼层
本帖最后由 大灰狼1976 于 2014-1-26 16:12 编辑
  1. Sub aaa()
  2. Dim arr, arr1, i&, j&, n&, s$
  3. arr = Application.Transpose(Range("EU3:EW12"))
  4. arr1 = [en1:ep1]
  5. For j = 1 To 3
  6.   s = Join(Application.Index(arr, j, 0), "")
  7.   For i = 1 To 3
  8.     If n < InStr(s, Mid(arr1(1, i), j, 1)) Then n = InStr(s, Mid(arr1(1, i), j, 1))
  9.   Next i
  10. Next j
  11. Range(Cells(n + 3, "eu"), Cells(UBound(arr, 2) + 2, "ew")).Interior.ColorIndex = 37
  12. End Sub
复制代码
测试无问题,只根据你的需要改了range(“EU3:EW12")
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 04:04 , Processed in 1.016743 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表