在VBA中从Windows剪贴板粘贴值

时间:2019-03-10 13:45:03

标签: excel vba

如何使用VBA运行通用的粘贴值功能,该功能适用​​于从Windows剪贴板粘贴数据?更准确地说:

我有一个范围A1作为辅助范围,还有一个A2我想在其中显示结果。代码段的问题:

Range("A2").PasteSpecial xlPasteValues

直到我从Excel范围进行复制之前,这一直有效,但是并非总是如此。如果我从另一个系统进行复制,则会收到错误消息:

PasteSpecial method of Range class failed

替代代码段为:

Range("A1").Activate
ActiveSheet.Paste
Range("A2").Value = Range("A1").Value

这将利用A1作为辅助范围,以免破坏范围A2的格式。

我在这里遇到了另一个问题。我经常复制以0开头的值,即使我将范围A1设置为文本格式,也可以接受以0开头的值,常规的Paste函数都会覆盖该格式并自动清除0从一开始(例如将0123变成123)。

xlPasteValues不会这样做,但是似乎与非Excel副本不兼容。

有没有办法解决这个问题(在A1的开头保留0,但也要避免在A2进行任何格式更新)?

0 个答案:

没有答案