剪贴板中的 vba TRUE 或 FALSE 文本被 Excel 识别为布尔值

剪贴板中的 vba TRUE 或 FALSE 文本被 Excel 识别为布尔值

我有一个表格,其中一列(假设列代码)中有文本 TRUE。但是,当我将其复制到 excel 时,数据变为布尔值,所以我的 vlookup(从列代码中搜索文本 TRUE)变为错误(#N/A)。我该如何解决这个问题?

仅供参考,我首先将数据插入剪贴板

Dim ClipboardObj As New MSForms.DataObject
ClipboardObj.SetText Text:=myExternalData
ClipboardObj.PutInClipboard

然后使用选择性粘贴将数据输入到 Excel 表中

Range("C4").Select
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False

答案1

在 VBA 代码中,将单元格格式设置为文本,

Range("C4").NumberFormat = "@"
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False

如果您需要用双引号括住 TRUE 单元格值,

Range("C4").NumberFormat = "@"  ' you may not need this
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
Range("C4").Value = Chr(34) + Range("C4").Value + Chr(34)

答案2

解决了。​​我在 Excel 工具栏中将代码列的格式更改为文本,但我忘了检查格式。

@njc:是的,从剪贴板粘贴后,我希望文本“TRUE”作为字符串(而不是布尔值)。

相关内容