【问题标题】:How to copy-and-paste value (Excel VBA)? [duplicate]如何复制和粘贴值(Excel VBA)? [复制]
【发布时间】:2019-01-22 15:05:02
【问题描述】:

我正在尝试使用 Excel VBA 将一个简单的值从一个 Excel 文件复制并粘贴到另一个文件。我有以下代码,但它似乎也可以复制和粘贴格式。如何指定它以便它只粘贴值?谢谢。

Sub PasteValue()

Set x = Workbooks.Open("workbook name 1")

Workbooks("workbook name 1").Sheets("sheet name 1").Range("A1:M10").Copy Workbooks("workbook name 2").Sheets("sheet name 2").Range("A1")

End Sub

【问题讨论】:

    标签: excel vba macos


    【解决方案1】:

    或者,您可以使用:

    Workbooks("workbook name 1").Sheets("sheet name 1").Range("A1:M10").Value = _
    Workbooks("workbook name 2").Sheets("sheet name 2").Range("A1:M10").Value
    

    【讨论】:

      【解决方案2】:

      只需使用以下方式粘贴值:

      Workbooks("workbook name 1").Sheets("sheet name 1").Range("A1:M10").Copy   
      Workbooks("workbook name 2").Sheets("sheet name 2").Range("A1").PasteSpecial xlPasteValues
      

      【讨论】:

      • 添加后,我得到以下信息:“编译错误:预期:语句结束”
      • 如果您在 2 个单独的行上使用此代码引用正确的书籍和正确的工作表名称,则没有理由不这样做除非您的代码有更多你没有显示的子
      【解决方案3】:

      仅粘贴值:试试这个

      Sub Paste()
      
      'Declare ranges
          Dim Source_Rg As Range 'Copy from source range
          Dim To_Rg As Range     'Past to target range
      
      'Set source and target ranges
          'Source range
          Set Source_Rg = Workbooks("Source file name.xlsx") _
                         .Worksheets("Sheet name").Range("A1")
      
          'Target range (Active workbook)
          Set To_Rg = ActiveWorkbook.Worksheets("Sheet name") _
                     .Range("A1")
      
      'Paste values only
          To_Rg = Source_Rg
      
          Source_Rg = Nothing
          To_Rg = Nothing
      
      End Sub
      

      【讨论】:

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