将剪贴板中的值粘贴到打开的 Excel 电子表格的第一个空行中
Pasting Values from Clipboard into the first empty row of open Excel spreadsheet
我有一个来自 R 的数据框,我需要将其粘贴到打开的 Excel 电子表格的第一个空行中。
我试过很多东西。
此代码抛出 "Run-time error '1004': Application-defined or object-defined error"。
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
在您的 PasteSpecial
行中,您将 Range
指定为 Range("A" & NextRow)
。 NextRow
已被定义为 Range
本身,将 String
与 Range
连接是无效的。
按如下方式更改您的代码:
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 行的限制。
如果我明白了,您是想在 Windows 剪贴板中粘贴一个值。问题是从 Windows 粘贴时不能使用粘贴值,因为它不是复制 Excel 对象。
与其使用 Range.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
,不如尝试单独使用 PasteSpecial:
Range.PasteSpecial
您也可以只使用 .Paste 方法,但您需要先 select 您的范围:
Range("A1").select
ActiveSheet.Paste
用什么方法找到Range
并不重要,重要的是如何粘贴它。我更喜欢前一种方法,但两者都应该有效。
试试这个
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
附加到文档的最后
Set Range2 = ActiveDocument.Content
Range2.Collapse Direction:=wdCollapseEnd
Range2.Paste
我有一个来自 R 的数据框,我需要将其粘贴到打开的 Excel 电子表格的第一个空行中。
我试过很多东西。
此代码抛出 "Run-time error '1004': Application-defined or object-defined error"。
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
在您的 PasteSpecial
行中,您将 Range
指定为 Range("A" & NextRow)
。 NextRow
已被定义为 Range
本身,将 String
与 Range
连接是无效的。
按如下方式更改您的代码:
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 行的限制。
如果我明白了,您是想在 Windows 剪贴板中粘贴一个值。问题是从 Windows 粘贴时不能使用粘贴值,因为它不是复制 Excel 对象。
与其使用 Range.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
,不如尝试单独使用 PasteSpecial:
Range.PasteSpecial
您也可以只使用 .Paste 方法,但您需要先 select 您的范围:
Range("A1").select
ActiveSheet.Paste
用什么方法找到Range
并不重要,重要的是如何粘贴它。我更喜欢前一种方法,但两者都应该有效。
试试这个
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
附加到文档的最后
Set Range2 = ActiveDocument.Content
Range2.Collapse Direction:=wdCollapseEnd
Range2.Paste