为什么在粘贴变体值时我检索的是数字而不是文本?
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
我觉得很简单,但我会疯狂。 这张图片正好显示了我的问题。 我在 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