【问题标题】:Copy and Paste Cell Values in Excel VBA: Compile and Run Time Errors在 Excel VBA 中复制和粘贴单元格值:编译和运行时错误
【发布时间】:2019-11-12 21:10:54
【问题描述】:

我正在使用 excel VBA 设置重复代码,该代码将从一个工作表中复制公式值并将这些值粘贴到另一个工作表上的运行列表中。我可以将公式复制并粘贴到所需位置,但我需要在此代码中进行哪些更改才能仅复制和粘贴值?

我已经对此代码尝试了多种变体:

  1. .Value 在底部复制和/或粘贴命令之后

  2. .PasteSpecial xlPasteValues(给出编译错误,预期语句结束)

  3. .Value 定义要复制的单元格时(这会导致运行时错误“438”)

  4. 将我的复制和粘贴变量的 Dim 类型更改为 Variants、Strings 和 Range


Sub snapShot()
    Dim sourceSheet As String, destinationSheet As String
    Dim copyR As Range, copyT As Range
    Dim pasteR As Range, pasteT As Range
    sourceSheet = "REPORT"
    destinationSheet = "Historical Changes"

    Set copyR = Worksheets(sourceSheet).Range("I2")
    Set copyT = Worksheets(sourceSheet).Range("I3")

    With Sheets(destinationSheet)
        Set pasteR = .Cells(.Rows.Count, 1).End(xlUp)(2, 1)
        Set pasteT = .Cells(.Rows.Count, 1).End(xlUp)(2, 2)
    End With

    copyR.Copy pasteR.PasteSpecial xlPasteValues 'Compile Error: Expected: End of Statement
    copyT.Copy pasteT.PasteSpecial xlPasteValues 'Compile Error: Expected: End of Statement
    pasteT.Columns(2) = Now() 'This gives a time stamp next the my columns
    Application.OnTime Now() + TimeValue("24:00:00"), "snapShot"

End Sub

如果我删除 .PasteSpecial xlPasteValues 我的代码将正常工作以复制和粘贴公式,但由于我想要时间戳数据,我只想要值,而不是公式。 我目前正在获得

编译错误:预期:语句结束

如果我将其更改为 .Values 我会得到 ​​p>

运行时错误“438”:对象不支持此属性或方法

如果您发现任何可以解决此问题的方法,请告诉我!我敢肯定这很简单,但我在这个问题上已经卡了一段时间了。

【问题讨论】:

  • 把 pastespecial 放在新的一行
  • 或者只是pasteR.value=copyr.value
  • @SJR pasteR.Value=copyR.Value 修复它。谢谢!我想这可能很简单。 'pasteR.Value = copyR.Value pasteT.Value = copyT.Value
  • 提示,也许@SJR 应该将建议作为答案发布,或者您可以自行回答问题以结束而不是更改标题。第一个选项会将功劳返还给助手。 =)
  • @SJR 如果您将此作为答案提交,我会接受。谢谢!

标签: excel vba copy-paste


【解决方案1】:

当使用PasteSpecial 时,该位需要位于Copy 的单独一行,如:

copyR.Copy
pasteR.PasteSpecial xlPasteValues

在这种特殊情况下,可以完全避免剪贴板并直接传输值,这在代码和操作上都更短。如:

pasteR.value=copyR.value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多