在EXCEL VBA中当单元格字体颜色改变时,自动触发一个事件。这个事件,如何(自定义)实现?

在EXCEL VBA中当单元格字体颜色改变时,自动触发一个事件。这个事件,如何(自定义)实现?,第1张

在 Excel VBA 中,您可以使用 Worksheet_SelectionChange 事件来监测单元格字体颜色的改变。
以下是示例代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim selCell As Range
For Each selCell In Target
If selCellFontColorIndex <> xlAutomatic Then
'此处是您自定义的代码
MsgBox "字体颜色已更改!"
End If
Next selCell
End Sub
将以上代码粘贴到您的工作簿的模块中,当您在工作表中选择单元格并更改字体颜色时,就会触发 Worksheet_SelectionChange 事件,并d出消息框 "字体颜色已更改!"。
请注意,此代码仅适用于当前活动工作表,如果您需要在整个工作簿中使用此功能,则需要在每个工作表的模块中添加此代码。

Private Sub setColor(msfg As MSFlexGrid, row As Long, color As Long, bkcolor As Long)
For i = 1 To msfgCols - 1
msfgrow = row
msfgCol = i
msfgCellForeColor = color '前景色
msfgCellBackColor = bkcolor '背景色
Next
End Sub
Private Sub Command1_Click()
setColor MSFlexGrid1, 3, &HFFFF&, &H8000000D
End Sub
Private Sub Form_Load()
MSFlexGrid1Rows = 5
MSFlexGrid1Cols = 5
For i = 1 To 4
For j = 1 To 4
MSFlexGrid1TextMatrix(i, j) = j
Next
Next
End Sub

如果 你要自动这样来显示的话,首先 选中 你要这样 处理的 区域的第一个单元格……比如A1单元格 然后插入 名称 定义……取名称为 gs 引用位置输入:=getcell(6,a1) 确定
然后 再从A1 开始 选取所有的数据区域(要这样标记的)
格式 条件格式 条件1 公式 =left(gs)="=" 格式 字体 选 颜色为红色……
这里重点是 插入的 名称:的写法 要 选中在那个单元格插入的 引用位置 就是哪一个单元格 并且不要 绝对引用(默认会是 绝对引用),至于是否部分绝对引用 需要你自己根据实际需要 酌情处理(自己做一下有体会了 就知道怎么做了)
当然 ,如果只是想一次性这样处理一下 结果的话 你也可以 使用 定位 公式 单元格的方式 来一次性改变字体的颜色……
ctrl+g 组合键 打开定位窗口,然后 再选 公式 ……定位选择后 再 选字体颜色……


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12577933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存