为什么在粘贴变体值时我检索的是数字而不是文本?

Why when paste variant value I retreiver number intead text?

我觉得很简单,但我会疯狂。 这张图片正好显示了我的问题。 我在 table 上有 2 列文本,我将 table 值添加到变体中,当我“粘贴”这些值时,我检索到一列数字和一列文本?! 这是我用来解释我的程序的简单代码:

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

如何解决这个问题并检索数字或文本作为原始值

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

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

或使用 Excel 的 built-in copy/paste 可以包含以下格式:

Dim testVal, testRng As Range

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

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