我将电子邮件导出到 Excel,需要一个条件格式规则来突出显示内容在底部单元格边框以下的单元格(例如,下面标记为红色的单元格:)
当文本溢出单元格时进行条件格式(公式为:=LEN(A1)>6,但这不适用于电子邮件等随机文本,我猜如果可以计算行数,则必须针对每种字体进行调整,但不会发现由手动调整行高引起的溢出(我的屏幕截图中的第 8 行)。我真的在寻找导致以下问题出现的触发器!)
边界溢出文本的条件格式(当存在溢出文本时,该公式不起作用 - 这个问题的触发因素可能是我的问题的答案!??)
答案1
可以使用许多简单的方法捕获文本溢出,例如使用数据验证检查长度、捕获单元格中的字符数。
因此,我想建议最快、最有效的方法,即 VBA 宏,检查 TEXT WRAP 是否处于活动状态,并将格式应用于单元格范围。
Private Sub Worksheet_Activate()
Cells.WrapText = False
Cells.MergeCells = False
End Sub
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim rngLimit As Range
Set rngLimit = Range("A3:C10")
Dim rng As Range
For Each rng In Target
If Not Intersect(rng, rngLimit) Is Nothing Then
If Len(rng) > 15 Then
If rng.WrapText = False Then
If rng.MergeCells = False Then
MsgBox "Text more than 15 characters...", vbCritical, "Text too long!"
rng.Interior.Color = 3394611
rng = Left(rng, 15)
Else
rng.Interior.Color = xlNone
End If
End If
End If
End If
Next
End Sub
怎么运行的:
- 按下Alt+F11或者R右键单击工作表的 TAB。
- 然后打五查看代码。
Excel 将打开 VB 编辑器。
第一的C奥皮&磷aste
Option Explicit
,然后是两个代码。按Alt+Q返回工作表。
将工作簿另存为米acro 已启用。
一旦您在范围 A3:C10 中输入值,代码就会检查长度,如果超过 15 个字符,则自动换行和合并单元格将关闭,然后应用单元格格式。
注意:
- 您可以根据需要调整单元格引用、长度限制和单元格的内部颜色。