【问题标题】:Find and paste formatting查找并粘贴格式
【发布时间】:2022-01-14 19:57:02
【问题描述】:

我在不同的工作表上有两个项目数据集,Sheet1 和 Sheet2。每个项目都有不同的项目详细信息,因此我创建了 Sheet3 将每个项目的相关详细信息合并到一个地方。

Sheet1 和 Sheet2 对于每个项目应该具有相同的格式,但事实证明并非如此。从 Sheet1 复制格式很容易并且可以正常工作,但幸运的是,Sheet2 上的格式更准确。

我需要帮助编写一个宏,它首先清除 Sheet3 中某个范围内的所有格式,然后从 Sheet3 上的单元格(例如 C28)获取项目名称,查找 Sheet2 范围中的单元格值,复制该格式并粘贴它回到Sheet3上的C28——不仅是C28,还有B28到F28。 然后循环到下一个项目,直到它到达 Sheet3 数据范围的末尾(第 536 行)。

要清除格式的 Sheet3 数据范围:B28:F536
Sheet3 查找数据范围:C28:C536
Sheet2 数据范围:C3:EG24 - 宏将在其中找到要复制的单元格格式。

Sheet3 查找范围内的某些单元格将是空白的,或者在 Sheet2 范围内没有匹配项 - 然后宏应该跳过并继续。

任何帮助将不胜感激!

【问题讨论】:

标签: excel vba


【解决方案1】:

这行得通:

  On Error Resume Next

 For Each cell In Intersect(Sheets("Sheet3").Range("C28:C536"), Sheets("Sheet3").UsedRange)
    
    With Worksheets("Sheet2").Range("A3:EG24")
        Set CellFound = .Find(cell.Value, LookIn:=xlValues)
        CellFound.Copy(cell).PasteSpecial Paste:=xlPasteFormats
       
    End With
    
 Next cell

它是执行格式化和其他检查的更大宏的一部分。 没想到会这么简单!

【讨论】:

    猜你喜欢
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多