![剪贴板中的 vba TRUE 或 FALSE 文本被 Excel 识别为布尔值](https://linux22.com/image/1684458/%E5%89%AA%E8%B4%B4%E6%9D%BF%E4%B8%AD%E7%9A%84%20vba%20TRUE%20%E6%88%96%20FALSE%20%E6%96%87%E6%9C%AC%E8%A2%AB%20Excel%20%E8%AF%86%E5%88%AB%E4%B8%BA%E5%B8%83%E5%B0%94%E5%80%BC.png)
我有一个表格,其中一列(假设列代码)中有文本 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”作为字符串(而不是布尔值)。