Если у вас есть данные в тексте/файл CSV, то вы можете попробовать: Data > Import External Data > Import Data
Это запускает мастер, который позволяет указать конкретные столбцы в виде текста и причины символы, подобные +, - и т. д. не обрабатываются Excel
В VBA это можно сделать с помощью метода Worksheet("foo").QueryTables.Add
. Существует немало опций, но свойство TextFileColumnDataTypes
позволяет указать, какие столбцы обрабатывать как текст. Возможно, было бы легче определить, что происходит, записав макрос используемого мастера и затем отредактировав его в соответствии с
Если вы читаете данные более напрямую (например, через ADO или DAO), просто убедитесь, что ячейка назначения находится в текстовом формате, прежде чем данные будут добавлены
Worksheet("foo").Cells(r, c).NumberFormat = "@"
NB в исходном растворе, вы почти наверняка хотел посмотреть на C.Formula
, а не C.Value
Если клетка C имела формулу =123+456
то C.Value
будет 579, где а C.Formula
бы =123+456
+1 на использовании встроенного Replace
метода в этом контексте
Спасибо, barrowc, ваш окончательный ответ превратил трюк, я забыл о том, чтобы посмотреть на .formula, а не на .value – CABecker