如何防止Excel VBA粘贴特殊值,将数据types从数字/date更改为文本
我遇到一个问题,Excel VBA粘贴特殊值时将数据types更改为文本,当它执行粘贴值操作,然后打破下游公式,期望看到一个数字/date而不是文本。
在很高的层面上,我的过程如下:
-
从function工作表开始,复制并重命名它;
-
对新创build的工作表执行操作,包括复制,粘贴特殊值;
-
取决于粘贴数据的公式现在已经被破坏,因为数据types已经改变为文本。
正在执行复制粘贴特殊值的代码如下所示:
Workbooks("myFile.xlsm").Sheets(pageFocus).Range(refreshCopyRange).Copy Workbooks("myFile.xlsm").Sheets(pageFocus).Range(pasteRange).PasteSpecial (xlPasteValues)
是否有某种修改器或覆盖PasteSpecial(xlPasteValues),将停止Excel VBA更改数据types?
非常感谢您的帮助!
你可以使用这个
.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False
您需要执行第二个用于格式化的粘贴命令:
Workbooks("myFile.xlsm").Sheets(pageFocus).Range(pasteRange).PasteSpecial xlPasteValues Workbooks("myFile.xlsm").Sheets(pageFocus).Range(pasteRange).PasteSpecial xlPasteFormats