【问题标题】:Excel VBA PasteSpecialExcel VBA PasteSpecial
【发布时间】:2015-09-30 23:21:31
【问题描述】:
Set copySheet = Worksheets("Metrics")
Set pasteSheet = Worksheets("Metrics")

copySheet.Range("A1:J5").Copy
pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(2, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True

我已经编写了这段 VBA 代码,它主要完成了我想要它做的事情,但我不知道如何应用第二个 pastespecial 将格式从复制部分获取到新粘贴的部分。我尝试在第一个 pastespecial 行下添加第二个 .PasteSpecial xlPasteFormats,但此时宏失败。

关于如何将格式转换为新粘贴的部分有什么想法吗?

【问题讨论】:

  • 添加到xlPasteValues后面。可能需要一个逗号。
  • 这是我的第一个想法,尝试了它,它在带有逗号的那一行给我一个 1004 错误,没有编译错误。
  • PasteSpecial 代码行之后,为 xlPasteFormats 放入第二行 PasteSpecial 代码
  • 等等,你不能粘贴值和格式???我的意思是价值观的重点是你不想要格式 XD
  • @findwindow 在某些情况下可能是这样,但它非常常用于在没有公式的情况下引入数据。在这种情况下,您可能仍然需要这些格式。

标签: vba excel


【解决方案1】:

这不是一个漂亮的答案,但是

pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(-4, 0).PasteSpecial xlPasteFormats

这确实有效。我把它放在第一个 pasteSheet 行的正下方。

现在我必须在粘贴后的第一个单元格中插入一年中的月份......这会很有趣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多