我正在处理使用APACHE POI生成的Excel文档。 该文档中包含许多用于数据验证的下拉列表。 在这些下拉列表中选择的数据始终具有相同的类型:
LABEL(ID)
对于填写excel文档的人来说,ID不如LABEL _重要,但ID仍然是解析目的所必需的。 我通过APACHE POI管理这些单元格的特定格式,以帮助用户专注于对他/她更有用的信息:
我的问题:当用户通过下拉列表更改单元格中的值时,单元格上的样式格式会丢失。
我的问题:是否可以在我的excel文档上设置一个侦听器来执行以下任务:
我已经有一个执行“样式格式”工作的函数,但我不知道如何将它插入这种监听器......
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
答案 0 :(得分:0)
Excel表单控件不支持任何类型的字体和颜色格式。 ActiveX控件允许您更改字体和颜色,但不能更改单个字符。通过一些复杂的VBA和WinAPI调用,最有可能实现控件的自定义绘图部分。
我能想到的最接近的选择是一些粗体extended Unicode characters:
答案 1 :(得分:0)
感谢Determine if cell contains data validation,我设法完成了我想要的工作:
([A-Za-z ]+)