首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将值从剪贴板粘贴到打开的Excel电子表格的第一个空行中

将值从剪贴板粘贴到打开的Excel电子表格的第一个空行中
EN

Stack Overflow用户
提问于 2016-12-06 17:47:38
回答 4查看 6.8K关注 0票数 0

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

我试过很多东西。

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

代码语言:javascript
复制
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自下而上查找第一个空行。

代码语言:javascript
复制
Cells(Range("C1000000000").End(xlUp).Row + 1, 3).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-06 19:15:56

尝尝这个

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2016-12-06 18:22:37

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

更改代码如下:

代码语言:javascript
复制
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行。

票数 0
EN

Stack Overflow用户

发布于 2016-12-06 18:22:47

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

与其使用Range.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,不如单独使用PasteSpecial:

代码语言:javascript
复制
Range.PasteSpecial

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

代码语言:javascript
复制
Range("A1").select
ActiveSheet.Paste

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41001665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档