我正在使用APACHE POI生成一个excel文档 . 该文档中包含许多用于数据验证的下拉列表 . 在这些下拉列表中选择的数据始终是相同的类型:
标签(ID)
对于填写excel文档的人来说,ID不如LABEL _重要,但ID仍然是解析目的所必需的 . 我通过APACHE POI管理这些单元格的特定格式,以帮助用户专注于对他/她更有用的信息:
-
LABEL为黑色
-
(ID)为灰色
我的问题:当用户通过下拉列表更改单元格中的值时,单元格上的样式格式会丢失 .
我的问题:是否可以在我的excel文档上设置一个监听器来完成以下工作:
-
on ANY cell
-
填写 ANY 下拉列表
-
在工作簿的 ANY 表上
-
设置指定的单元格格式?
我已经有一个执行“样式格式”工作的函数,但我不知道如何将它插入这种监听器...
Function formatStyle()
Dim cellContent As String
Dim valeurLength As Integer
For Each currentCell In Selection.Cells
cellContent = currentCell.Value
For valeurLength = 1 To Len(cellContent)
If Mid(cellContent, valeurLength, 1) = "(" Then
Exit For
End If
Next valeurLength
With currentCell.Characters(Start:=1, Length:=valeurLength - 1).Font
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
End With
With currentCell.Characters(Start:=valeurLength, Length:=Len(cellContent) - valeurLength + 1).Font
.ThemeColor = xlThemeColorDark1
.Color = -4144960
End With
Next
End Function
2 回答
感谢Determine if cell contains data validation,我设法做到了我想要的:
Excel表单控件不支持任何类型的字体和颜色格式 . ActiveX控件允许您更改字体和颜色,但不能更改单个字符 . 通过一些复杂的VBA和WinAPI调用,最有可能实现控件的自定义绘图部分 .
我能想到的最接近的选择是一些大胆的extended Unicode characters: