将范围设置为值,而无需重新格式化单元格

我有一些数字与一些/在其中,我试图复制到另一个范围:

 ... 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