如何使用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
进行任何格式更新)?