我目前正在开发Excel的加载项,它会自动格式化表格。用户在准备表时必须遵循特定的格式,否则"合并单元格的常见错误仅保留左上角的单元格值,并丢弃其他值。"必然会出现。
我想从Excel中静音此警报,但仍希望捕获此错误并向用户传递不同的消息以终止此子。我试过这个:
Sub FormatTable()
On Error Goto ErrHandler
Application.DisplayAlerts = False
'Codes for formatting the table
Exit Sub
ErrHandler:
MsgBox "Incorrect formatting. Terminating process to conserve data."
End Sub
但是,我确实意识到使用" Application.DisplayAlerts = False"将导致Excel选择默认操作并继续合并导致大混乱的单元格。它不会去ErrHandler。是否有某种方法可以实现这一目标?谢谢。
答案 0 :(得分:0)
您可以在运行代码之前测试所选范围内的合并单元格:
Public Function HasMergedCells(oRng As Range)
Dim oCell As Range
Dim oArea As Range
For Each oArea In oRng.Areas
For Each oCell In oArea.Cells
If oCell.MergeArea.MergeCells Then
HasMergedCells = True
Exit Function
End If
Next
Next
End Function