【问题标题】:Pasting Values from Clipboard into the first empty row of open Excel spreadsheet将剪贴板中的值粘贴到打开的 Excel 电子表格的第一个空行中
【发布时间】:2017-04-21 11:08:19
【问题描述】:

我有一个来自 R 的数据框,我需要将其粘贴到打开的 Excel 电子表格的第一个空行中。

我尝试了很多东西。

此代码引发“运行时错误 '1004':应用程序定义或对象定义错误”。

Dim NextRow As Range
Set NextRow = Range("B" & Sheets("TC-9").UsedRange.Rows.Count + 1)
Worksheets("TC-9").Range("A" & NextRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

我还尝试使用 xlUp 从下往上查找第一个空行。

Cells(Range("C1000000000").End(xlUp).Row + 1, 3).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

【问题讨论】:

  • 您遵循的工作流程是什么:复制 R 代码,然后选择打开的工作表,对吗?...您的 excel 文件上是否有带有例程或类似内容的按钮那个?
  • stackoverflow.com/questions/9022245/… 你能用 R 插件吗?
  • 你是对的。我在 R 中构建了一个例程,它从网络上删除一些数据,然后对其进行处理。最后,它将数据帧从 R 复制到剪贴板。我需要它然后将数据粘贴到 Excel 中。
  • 您有什么问题?不是在粘贴什么吗?还是从错误的单元格粘贴?

标签: excel vba clipboard paste


【解决方案1】:

试试这个

dim lastrow as integer

With Worksheets("TC-9")
    lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
    .Range("A" & lastrow + 1).PasteSpecial xlPasteValues, _ 
        Operation:=xlNone, SkipBlanks:=False, Transpose:=False

End With

【讨论】:

    【解决方案2】:

    如果我理解的话,您是在尝试在 Windows 剪贴板中粘贴一个值。问题是从 Windows 粘贴时不能使用粘贴值,因为它不是复制 Excel 对象。

    不要使用Range.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,而是尝试单独使用 PasteSpecial:

    Range.PasteSpecial
    

    您也可以只使用 .Paste 方法,但您需要先选择您的范围:

    Range("A1").select
    ActiveSheet.Paste
    

    您使用什么方法找到Range 并不重要,重要的是您如何粘贴它。我更喜欢前一种方法,但两者都应该有效。

    【讨论】:

      【解决方案3】:

      在您的PasteSpecial 行中,您将Range 指定为Range("A" & NextRow)NextRow 已被定义为 Range 本身,将 StringRange 连接是无效的。

      如下修改你的代码:

      Dim NextRow As Long
      NextRow = Sheets("TC-9").Range("B" & Sheets("TC-9").Rows.Count).End(xlUp).Row + 1
      Worksheets("TC-9").Range("A" & NextRow).PasteSpecial
      

      注意:这将从剪贴板复制一个值。如果您希望将多个值复制到单行,则如果它们是制表符分隔的,它将起作用,但如果它们是逗号分隔的,则不起作用。 (可能可以完成,但需要更多的工作。)


      在您的第二段代码中,您使用了Range("C1000000000"),但 Excel 目前有 1,048,576 行的限制。

      【讨论】:

        【解决方案4】:

        附加到文档的最后

        Set Range2 = ActiveDocument.Content 
         Range2.Collapse Direction:=wdCollapseEnd 
         Range2.Paste 
        

        Reference Link Microsoft-Docs

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-06
          • 2023-04-10
          • 1970-01-01
          • 1970-01-01
          • 2019-10-10
          • 2015-07-29
          • 1970-01-01
          • 2015-02-03
          相关资源
          最近更新 更多