为什么在粘贴变体值时我将检索号插入文本?

问题描述

我认为很简单,但是我会发疯的。 此图像恰好显示了我的问题。 我在表上,两行带有文本,我将表值添加到变量中,当我“粘贴”值时,我分别返回一列数字和一列文本? 这是我用来解释程序的简单代码

Sub test()
Dim testVal,testRng As Range

Set testRng = Range("A1:B10")
testVal = testRng.Value

With testRng.Offset(,2)
.Value = testVal
End With

End Sub

enter image description here

如何解决此问题并获取数字或文本作为原始值

解决方法

就像您键入一个值一样,Excel会检查它并推断出它认为您想要的类型。有时您需要指定格式,以强制Excel将值设置为文本格式:

With testRng.Offset(,2)
  .NumberFormat = "@"
  .Value = testVal
End With

或使用Excel的内置复制/粘贴功能,其中可以包括以下格式:

Dim testVal,testRng As Range

Set testRng = Range("A1:B10")
testRng.Copy

With testRng.Offset(,2)
    .PasteSpecial (xlPasteValuesAndNumberFormats)
End With
Application.CutCopyMode = False