VBA执行mergeSimilarAdjacentCells合并表头弹出提示如何解决
解决方案
你遇到的弹窗是Excel合并多内容单元格时的默认确认提示,只需要在合并代码执行前后临时关闭系统提示,执行完成后恢复即可。
修改后的完整代码如下:
Function mergeSimilarAdjacentCells() Dim Rng_headers As Range Dim numOfDataCols As Long Dim myCell As Variant ' 开启错误捕获,防止代码异常导致系统提示无法恢复 On Error GoTo ErrHandler ' 临时关闭系统提示 Application.DisplayAlerts = False numOfDataCols = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column Set Rng_headers = Range("A1:" & Col_Letter(numOfDataCols) & 1) MergeAgain: For Each myCell In Rng_headers If myCell.Value = myCell.Offset(0, 1).Value And IsEmpty(myCell) = False Then Range(myCell, myCell.Offset(0, 1)).Merge GoTo MergeAgain End If Next ExitHandler: ' 恢复系统提示,必须执行 Application.DisplayAlerts = True Exit Function ErrHandler: ' 出错时也恢复系统提示,再抛出错误 MsgBox "运行出错:" & Err.Description Resume ExitHandler End Function
注意事项
Application.DisplayAlerts = False会暂时屏蔽所有Excel系统弹窗,操作完成后必须恢复为True,否则后续使用Excel时所有系统确认提示都会默认跳过,可能造成数据丢失- 代码中使用的
Col_Letter为自定义函数,请确保你已经在模块中正确定义该函数,否则代码会运行报错 - 你当前编写的逻辑无返回值,建议将
Function改为Sub过程更符合VBA编码规范
内容的提问来源于stack exchange,提问作者User1
相关产品推荐
相关产品推荐

