vba Текст TRUE или FALSE из буфера обмена распознается Excel как логическое значение

vba Текст TRUE или FALSE из буфера обмена распознается Excel как логическое значение

У меня есть таблица, в одном из столбцов (скажем, столбец Код) есть текст ИСТИНА. Но когда я копирую его в Excel, данные становятся логическими, поэтому мой vlookup (который ищет текст ИСТИНА из столбца Код) становится ошибкой (#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

Если вам требуются двойные кавычки вокруг значения ячейки ИСТИНА,

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» был строкой (не логическим значением) после вставки его из буфера обмена.

Связанный контент