vba更改excel背景色问题

luc_ne 2008-06-11 10:41:34
想要实现cell的闪烁效果,是这样做的,每隔一段时间更改一下cell的背景色。

当某个cell处于闪烁状态时,
双击任何cell或者是在任何cell上按键要转换到编辑状态时,excel立即退出,且没有任何提示信息。

sheet1的代码
Private Declare Function SetTimer Lib "user32" _
(ByVal hwnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" _
(ByVal hwnd As Long, _
ByVal nIDEvent As Long) As Long
Dim timer

Private Sub btnStart_Click()
Call endC
Call Module1.initVariable(1, TextBox1.Text, TextBox2.Text)
Call startC
End Sub

Private Sub btnStop_Click()
Call endC
End Sub

Private Sub startC()
timer = SetTimer(0, 0, 80, AddressOf Module1.Scintill)
End Sub

Private Sub endC()
Call KillTimer(0, timer)
End Sub


Module1的代码

Dim sheetIdx As Integer
Dim rowCnt As Integer
Dim colCnt As Integer
Dim flag As Boolean
Sub initVariable(ByVal var0 As Integer, ByVal var1 As Integer, ByVal var2 As Integer)
sheetIdx = var0
flag = True
rowCnt = var1
colCnt = var2
End Sub
Sub Scintill()
If Val(Application.Version) >= 10 Then
If Application.Ready Then
Call SetBgColor
End If
Else
Call SetBgColor
End If
End Sub

Sub SetBgColor()
If flag Then
'MsgBox (Worksheets(sheetIdx).Cells(rowCnt, colCnt).Interior.ColorIndex)
Worksheets(sheetIdx).Cells(rowCnt, colCnt).Interior.ColorIndex = 0
flag = False
Else
'MsgBox (Worksheets(sheetIdx).Cells(rowCnt, colCnt).Interior.ColorIndex)
Worksheets(sheetIdx).Cells(rowCnt, colCnt).Interior.ColorIndex = 6
flag = True
End If
End Sub


在每隔一段时间进行的SetBgColor中,如果excel正处于编辑状态
将指定cell背景色作为内容弹出,一切正常

MsgBox (Worksheets(sheetIdx).Cells(rowCnt, colCnt).Interior.ColorIndex)

但如果改为更改背景色,则立即出错退出

Worksheets(sheetIdx).Cells(rowCnt, colCnt).Interior.ColorIndex = 6


本来打算把excel文件附上的,但是老提示不能打开文件,所以只能把代码贴上了。
...全文
1065 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaOBS 2008-06-11
  • 打赏
  • 举报
回复
引用
当某个cell处于闪烁状态时,
双击任何cell或者是在任何cell上按键要转换到编辑状态时,excel立即退出,且没有任何提示信息。


已经达到这个要求了!
luc_ne 2008-06-11
  • 打赏
  • 举报
回复
谢谢,加上就可以了。
原来on error ***是可以对方法起作用的,以前还以为是针对某句代码的
ChinaOBS 2008-06-11
  • 打赏
  • 举报
回复
引用
想实现的效果不是这样的,想要编辑状态时也闪烁,或者暂停闪烁也可以。

excel退出是现在的问题所在


当Excel处于编辑状态时,VBA代码会自动暂停的!
在 过程SetBgColor()起始位置增加一行:on error resume next即可解决退出Excel的问题。
luc_ne 2008-06-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ChinaOBS 的回复:]
引用当某个cell处于闪烁状态时,
双击任何cell或者是在任何cell上按键要转换到编辑状态时,excel立即退出,且没有任何提示信息。

已经达到这个要求了!
[/Quote]
不好意思,我没有把问题描述清楚。

想实现的效果不是这样的,想要编辑状态时也闪烁,或者暂停闪烁也可以。

excel退出是现在的问题所在

5,172

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧