Excel精英培训网

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

[已解决]请老师帮助编写代码

[复制链接]
发表于 2013-3-28 17:48 | 显示全部楼层 |阅读模式
请老师帮助编写代码。谢谢!
最佳答案
2013-3-28 18:28
  1. Sub aaa()
  2. For I = 2 To 17
  3.     X = 0
  4.     Select Case I
  5.         Case 2 To 5
  6.             y = 1
  7.             Z = 65535
  8.         Case 6 To 9
  9.             y = 2
  10.             Z = 65280
  11.         Case 10 To 13
  12.             y = 3
  13.             Z = 16737843
  14.         Case Else
  15.             y = 4
  16.             Z = 13408767
  17.     End Select
  18.    
  19.     For Each Rng In ActiveSheet.Range(Cells(I, 1), Cells(I, 8))
  20.         If Rng.Value = "" Then X = X + 1
  21.         If X = y Then
  22.             Rng.Interior.Color = Z
  23.             Rng.Value = Rng.Column
  24.             Exit For
  25.         End If
  26.     Next Rng
  27.    
  28. Next
  29.         
  30. End Sub
复制代码

请在空白单元格内添加一个数字.zip

2.88 KB, 下载次数: 4

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-3-28 18:09 | 显示全部楼层
回复

使用道具 举报

发表于 2013-3-28 18:11 | 显示全部楼层
  1. Sub 填数()
  2.     Dim i As Byte
  3.     Dim j As Byte
  4.     For i = 2 To 17
  5.         For j = 1 To 8
  6.             If Len(Cells(i, j)) = 0 Then
  7.                 Cells(i, j) = j
  8.                 Exit For
  9.             End If
  10.         Next
  11.     Next
  12. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
ymq123 + 3

查看全部评分

回复

使用道具 举报

发表于 2013-3-28 18:12 | 显示全部楼层
原来有颜色规律了,重写下。
回复

使用道具 举报

发表于 2013-3-28 18:14 | 显示全部楼层
  1. Sub 填数()
  2.     Dim i As Byte
  3.     Dim j As Byte
  4.     For i = 2 To 17
  5.         For j = 1 To 8
  6.             If Cells(i, j).Interior.ColorIndex <> -4142 Then
  7.                 Cells(i, j) = j
  8.                 Exit For
  9.             End If
  10.         Next
  11.     Next
  12. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
ymq123 + 3

查看全部评分

回复

使用道具 举报

发表于 2013-3-28 18:28 | 显示全部楼层    本楼为最佳答案   
  1. Sub aaa()
  2. For I = 2 To 17
  3.     X = 0
  4.     Select Case I
  5.         Case 2 To 5
  6.             y = 1
  7.             Z = 65535
  8.         Case 6 To 9
  9.             y = 2
  10.             Z = 65280
  11.         Case 10 To 13
  12.             y = 3
  13.             Z = 16737843
  14.         Case Else
  15.             y = 4
  16.             Z = 13408767
  17.     End Select
  18.    
  19.     For Each Rng In ActiveSheet.Range(Cells(I, 1), Cells(I, 8))
  20.         If Rng.Value = "" Then X = X + 1
  21.         If X = y Then
  22.             Rng.Interior.Color = Z
  23.             Rng.Value = Rng.Column
  24.             Exit For
  25.         End If
  26.     Next Rng
  27.    
  28. Next
  29.         
  30. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
ymq123 + 3

查看全部评分

回复

使用道具 举报

发表于 2013-3-28 19:12 | 显示全部楼层
真好,慢慢研究之中
回复

使用道具 举报

 楼主| 发表于 2013-3-28 19:18 | 显示全部楼层
redsheep 发表于 2013-3-28 18:28

还要麻烦你:Z = 65535 中 65535是怎么得到的。谢谢!
回复

使用道具 举报

发表于 2013-3-28 19:23 | 显示全部楼层
原来是要上色?
会错意了,

评分

参与人数 1 +3 收起 理由
ymq123 + 3

查看全部评分

回复

使用道具 举报

发表于 2013-3-28 19:46 | 显示全部楼层
ymq123 发表于 2013-3-28 19:18
还要麻烦你:Z = 65535 中 65535是怎么得到的。谢谢!

我是看你自己用的颜色  

比如可以在代码窗口这么写个宏
  1. Sub col()
  2. Debug.Print  ActiveSheet.Range("C3").Interior.Color
  3. End Sub
复制代码
然后在视图菜单里勾选"立即窗口"  运行一次就能看到了

或者你可以录制宏  然后给单元格上色  然后再查看中间那个 .color 等于几

评分

参与人数 1 +3 收起 理由
ymq123 + 3

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-25 09:17 , Processed in 0.384050 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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