Excel精英培训网

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

[已解决]请老师帮忙用VBA判断日期的单双号而控制字体的颜色

[复制链接]
发表于 2015-5-28 11:23 | 显示全部楼层 |阅读模式
本帖最后由 蒋德宏 于 2015-5-28 11:26 编辑

请老师帮忙用VBA判断A列日期的单双号来控制A B C D E F 列的颜色,如果A列的日期是单号的话,其它列的颜色就为粉红色,如果A列的日期是双号的话,其它列的颜色为绿色,在打开Sheet2时候代码触发。谢谢各位老师了! 根据日期的单双号用VBA控制字体的颜色.rar (9.06 KB, 下载次数: 5)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-5-28 11:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 冥王 于 2015-5-28 11:42 编辑
  1. Private Sub Worksheet_Activate()
  2.     Dim intRow%, r As Range
  3.     intRow = Cells(Rows.Count, 1).End(xlUp).Row
  4.     For Each r In Range("A2:A" & intRow)
  5.         If Application.IsEven(CVar(Split(r, " ")(0))) Then
  6.             r.Resize(1, 6).Font.Color = 16711935    '粉红
  7.         Else
  8.             r.Resize(1, 6).Font.Color = 5287936    '绿色
  9.         End If
  10.     Next
  11. End Sub
复制代码

根据日期的单双号用VBA控制字体的颜色.rar

14.44 KB, 下载次数: 12

回复

使用道具 举报

 楼主| 发表于 2015-5-28 12:00 | 显示全部楼层
老师请问为什么当代码运行到A663行的时候就会提示错误呢?
回复

使用道具 举报

 楼主| 发表于 2015-5-28 12:03 | 显示全部楼层
333.jpg
回复

使用道具 举报

发表于 2015-5-28 12:12 | 显示全部楼层
错误提示是什么?应该是你的数据格式的问题吧,你的表格是里面,日期跟后面的时间中间都是一个空格分开的吗?
回复

使用道具 举报

发表于 2015-5-28 12:25 | 显示全部楼层
第5句改成这样试一下
  1.         If Application.IsEven(CVar(Left(Split(r, "-")(2), 2))) Then
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-5-28 13:56 | 显示全部楼层
冥王 发表于 2015-5-28 12:25
第5句改成这样试一下

老师您好!经过您刚刚改过代码以后问题解决了,但是运行代码的时候有些慢,现在内容有1千多行,每天都会增加内容,我是用窗体录入内容的,您看可以不可以有其它快一点的方法呢?谢谢!
回复

使用道具 举报

 楼主| 发表于 2015-5-28 14:07 | 显示全部楼层
蒋德宏 发表于 2015-5-28 13:56
老师您好!经过您刚刚改过代码以后问题解决了,但是运行代码的时候有些慢,现在内容有1千多行,每天都会增 ...

老师您好!这是我用窗体录入保存内容到工作表按钮的代码:Private Sub CommandButton12_Click()Beep
If ListView1.ListItems.Count = 0 Then
TextBox1.SetFocus
Exit Sub
End If
Dim arr()
  Dim icount As Integer, Y As Integer, x
  icount = ListView1.ListItems.Count 'ListItems.Count 返回总行数
  ReDim arr(1 To icount, 1 To 6)
  For x = 1 To icount
        arr(x, 1) = ListView1.ListItems(x).Text  '把listview第1列(text)放在数组第一列
     For Y = 1 To 5
        arr(x, Y + 1) = ListView1.ListItems(x).SubItems(Y)
     Next Y
  Next x
   Sheets("调出").Range("a65536").End(xlUp).Offset(1, 0).Resize(icount, 6) = arr
   Me.ListView1.ListItems.Clear
   ActiveWorkbook.Save
   TextBox1.SetFocus
End Sub

您看可以在这个上面把颜色添加进去吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 07:08 , Processed in 0.308879 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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