【问题标题】:Error handling for merging cells in Excel VBAExcel VBA 中合并单元格的错误处理
【发布时间】:2016-02-06 15:56:04
【问题描述】:

我目前正在为 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。有什么办法可以做到这一点吗?谢谢。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您可以在运行代码之前测试所选范围内的合并单元格:

    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
    

    【讨论】:

    • 谢谢!这不完全是我想要的,但似乎是一种可行的解决方法。我会尝试实现它。
    猜你喜欢
    • 2021-05-10
    • 2014-03-07
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 2015-08-09
    • 2016-10-18
    相关资源
    最近更新 更多