Excel - 复制条件格式,删除规则,保持格式

时间:2014-09-10 14:27:10

标签: excel vba excel-vba conditional-formatting

我知道你通常会在一个问题中展示你曾经尝试过的东西,但这更像是一个"你有一个很好的例行程序可以做到这一点吗?"问题,我希望你愿意让它滑落......

我正在处理一个宏,该宏复制在源工作表中有条件格式化的单元格并将它们粘贴到输出表格中。 基本上,我希望保留所有格式,阴影等,但删除输出表中的所有条件(使当前格式保持静态)。

我已经在线看到了一些解决方案 - 从首先将其复制到word文档然后将其粘贴回来,循环输出单元格并通过format-element复制format-element - 我只是在寻找这是一个很好,有效的方法。

有没有人有他/她愿意分享的良好链接?

(Excel 2010)

感谢!!!!

5 个答案:

答案 0 :(得分:16)

是的,有可能:)您需要做的是通过模仿DisplayFormat然后删除条件格式来更改您计划复制的单元格的格式

Sub Keep_Format()
    Dim ws As Worksheet
    Dim mySel As Range, aCell As Range

    '~~> Change this to the relevant sheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    '~~> Change this to the relevant range
    Set mySel = ws.Range("A1:A10")

    For Each aCell In mySel
        With aCell
          .Font.FontStyle = .DisplayFormat.Font.FontStyle
          .Interior.Color = .DisplayFormat.Interior.Color
          .Font.Strikethrough = .DisplayFormat.Font.Strikethrough
        End With
    Next aCell

    mySel.FormatConditions.Delete

    '
    '~~> Now Do the copying
    '

    '~~> Once you are done, close the sorce worksheet without saving
End Sub

答案 1 :(得分:3)

我想我已经使用Office剪贴板了:复制范围,打开Office剪贴板窗格(Home选项卡下剪贴板部分右下角的小按钮)并从那里粘贴。

这是一个演示:http://www.bookkempt.com/2017/08/remove-conditional-formatting-but-keep.html

答案 2 :(得分:0)

我复制了单元格范围。将它们粘贴到Word中。复制Word中的范围并粘贴回excel。

答案 3 :(得分:-1)

我正试图做同样的事情,所有的答案对我来说似乎太多了,或者是基于一些错误/故障。

对我有用的是打开[11:39:39.572] Resolver error: The VS Code Server failed to start [11:39:39.609] TELEMETRY: {"eventName":"resolver","properties":{"outcome":"failure","reason":"ExitCode","askedPw":"0","askedPassphrase":"1","asked2fa":"0","askedHostKey":"0","gotUnrecognizedPrompt":"0","remoteInConfigFile":"1"},"measures":{"resolveAttempts":1,"exitCode":32,"retries":1}} [11:39:39.620] ------ ,将整个表从ms word复制到ms excel,然后将其粘贴回ms word。样式在那里,但是条件格式不再适用。

答案 4 :(得分:-1)

一种非常简单的方法是按颜色过滤列表。然后填充所需的适当单元格颜色。然后取消过滤并删除条件格式。填充将保留。