[英]Copy only conditional formatting
我正在為一些看起來相當簡單的事情而苦苦掙扎。 我想只復制條件格式的單元格的另一個規則。 我在這里搜索過類似的問題:
和其他地方:
2) https://www.mrexcel.com/forum/excel-questions/369089-vba-copy-conditional-formatting.html
...但大多數答案往往只是說使用.PasteSpecial xlPasteFormats
,10 次中有 9 次可以完成這項工作,但並不是我想要做的事情的真正答案(請參閱用戶對 SO 問題的評論:“這也不僅僅是復制條件格式,但我可以處理它”)。
我試圖從一個單元格中獲取條件格式規則,並將它們應用於另一個格式不同的單元格作為標准。 從.PasteSpecial
枚舉的這組示例來看,沒有一個可以完成確切的工作 - xlPasteAllMergingConditionalFormats
看起來很接近,但我實際上並不想將任何內容從一個單元格粘貼到另一個單元格。
嘗試了一些無望的猜測,例如:
For Each cond In rng1.FormatConditions rng2.FormatConditions.Add (cond) Next cond
但我知道它需要的遠不止這些......任何幫助表示贊賞!
這是一個有點廉價的技巧(又名“The Swap”),但它應該有效。 假設您只關心以下屬性:
因此,在復制單元格之前,您可以簡單地記住“hiddenRange”中的屬性。 因此,你可以簡單地復制copyRange
到hiddenRange
,然后復制copyRange
到pasteRange
與xlPasteAllMerginingConditionalFormats
,然后回憶的正確的屬性pasteRange
從hiddenRange
。
看到比解釋好一點:
Option Explicit
Sub TestMe()
Dim hiddenRange As Range
Dim copyRange As Range
Dim pasteRange As Range
Set hiddenRange = Range("A1")
Set copyRange = Range("B2")
Set pasteRange = Range("B3")
pasteRange.Copy hiddenRange
copyRange.Copy
pasteRange.PasteSpecial Paste:=xlPasteAllMergingConditionalFormats
With pasteRange
.Font.Name = hiddenRange.Font.Name
.Font.Size = hiddenRange.Font.Size
.Interior.Color = hiddenRange.Interior.Color
End With
hiddenRange.Clear
Application.CutCopyMode = False
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.