我遇到一个问题,即Excel VBA粘贴特殊值在执行粘贴值操作时将数据类型更改为文本,然后打破期望查看数字/日期而不是文本的下游公式。
在较高的层面上,我所拥有的流程如下:
从功能工作表开始,复制并重命名;
对新创建的工作表执行操作,包括复制,粘贴特殊值;
依赖于粘贴数据的公式现在已被破坏,因为数据类型已更改为文本。
执行复制粘贴特殊值的代码如下所示:
Workbooks("myFile.xlsm").Sheets(pageFocus).Range(refreshCopyRange).Copy
Workbooks("myFile.xlsm").Sheets(pageFocus).Range(pasteRange).PasteSpecial (xlPasteValues)
是否有某种修饰符或覆盖PasteSpecial(xlPasteValues)会阻止Excel VBA更改数据类型?
非常感谢您的任何帮助!
答案 0 :(得分:1)
您可以使用此
.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
答案 1 :(得分:1)
您需要执行第二次粘贴命令以进行格式化:
cursig <- character()
for (i in sig) { #not 1:length(sig) thats always 1,2,3... in order
cursig <- c(cursig, cur[i])
}
cursig
[1] "EUR" "GBP" "AUD" "CAD"