我有一系列数字,其中有一些/
,我正在尝试复制到另一个范围:
...
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
...
然而,当我这样做时,其中一些格式化为日期(即5/7161
变为May-61
。请注意,在转移到我的importWS
时,Excel添加了5 / 1 / 7161本身...然后将其转换为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
,但不愿意,因为我使用上述范围方法为多列执行此操作。
答案 0 :(得分:1)
将Range.NumberFormat property预设为文字,然后从来源阅读Range.Value2 property。
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