将范围设置为值,而无需重新格式化单元格
我有一些数字与一些/
在其中,我试图复制到另一个范围:
... 152/7163 152/7163 153/7163 153/7163 48/7164 332/7138 332/7138 332/7138 371/7166 5/7161 5/7161 5/7161 5/7161 115/7163 116/7163 121/7163 519/7132 154/7163 ...
然而,当我这样做,其中一些被格式化到一个date(即5/7161
变成May-61
。注意,在转移到我的importWS
,Excel自己添加importWS
…然后转身到May-61
。如果我改变它为Number
然后单元格完全改变它的值到1921663.00
。我怎样防止发生?
我从 ws
复制并复制到 importWS
:
importWS.range(importWS.cells(2,4),importWS.cells(lastRow,4)).Value = _ ws.Range(ws.cells(2,7),ws.cells(lastRow,7)).Value
我试过使用.Value2
和.Text
,都没有工作。 我知道我可以遍历范围内的每个单元格,并且像importWS.cells(i,4).Value = "'" & ws.cells(i,7).Value
但宁愿不,因为我使用上面的范围方法为多列做这个。
将Range.NumberFormat属性预设为Text,然后从源读取Range.Value2属性 。
with importWS .range(.cells(2, 4), .cells(lastRow, 4)).NumberFormat = "@" .range(.cells(2, 4), .cells(lastRow, 4)) = _ ws.Range(ws.cells(2, 7), ws.cells(lastRow, 7)).value2 end with