04 其他

清除条件格式但保留其格式样式

  在Excel中,您可以用条件格式根据特定条件来设置单元格或行的格式。但在某些情况下,您可能希望删除条件格式规则,但仅保留单元格中的格式。

  在VBA基础🔗十五、进阶知识中,关于Office协同的的示例中有过简单说明,就是通过:“从Excel数据表中把内容写入到Word,在从Word写入到的Excel数据表中的两个过程”实现剔除条件格式、又实现了格式的保留!

  示例展示Office协同,没有考虑其他。其实这个小的技巧完全可以通过复制、粘贴实现,而不必通过VBA代码。也感谢网友提醒纠正,这里同步另外一个实现它的简单方法!

视频1:

删除条件格式但保留其格式样式的复制+粘贴操作:

视频2:

删除条件格式但保留其格式的VBA代码(Office协同)操作:

源码下载:

示例代码
复制成功!
1

'利用Word的把表格黏贴进文档时、不会改变单元格、文字的设置的特性,创建一个临时word文档作为中间的承接点
Sub 选择区域()
    '-----------------------------------------------------------------------
    '自定义数据类型
    Dim Choose_rng As Range
    Dim wdap

    On Error Resume Next
    '选择需要设置的单元格区域
    Set Choose_rng = Application.InputBox("选择需要设置的单元格或单元格区域", Type:=8)
    If WorksheetFunction.CountA(Choose_rng) = 0 Then MsgBox "选择单元格区域为空": Exit Sub
    On Error GoTo 0


    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    '利用Word的把表格黏贴进文档时、不会改变单元格、文字的设置的特性,创建一个临时word文档作为中间的承接点
    Set wdap = CreateObject("Word.Application")
    With wdap
        .Visible = True
        .Documents.Add  '添加一个word表
    End With

    Choose_rng.Copy  '复制表黏贴到Word文档
    wdap.Selection.Paste

    wdap.Selection.WholeStory  '复制word文档的内容,黏贴到新表
    wdap.Selection.Copy
    ThisWorkbook.Sheets.Add after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    Sheets(Sheets.Count).Name = "复制表存放"
    ThisWorkbook.Sheets("复制表存放").Range("A1").Select
    ActiveSheet.Paste

    wdap.Documents.Close False
    wdap.Quit

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

MsgBox "完成"
End Sub

基础知识点:

请开发者喝杯咖啡 请开发者喝杯咖啡!