У меня есть база данных Firebird, хранящаяся в кодовой странице Windows-1251 и управляемая с помощью IBExpert. Мне нужно получить информацию о биллинге с помощью SQL, отредактировать ее и затем отправить ее клиентам. Я экспортирую результаты запроса в формат .csv (значения, разделенные запятыми), а затем обрабатываю связку csvs в довольно xls (с границами, шрифтами и т. Д.) С помощью Microsoft Excel 2010. У меня нет идеи, почему, но IBExpert помещает странный символ везде в числовых значениях между десятилетиями (64 731 вместо 64731). Asc()
метод от VBA говорит мне, что это символ № 160 в кодовой странице ASCII.
ТЕПЕРЬ, самое странное замечание, которое я сделал: если вы копируете этот символ вручную и удаляете его везде, используя функцию поиска/замены Excel, все в порядке. Если вы делаете то же самое в любом текстовом редакторе (например, старый добрый блокнот), все по-прежнему в порядке. Но когда вы пытаетесь автоматизировать замену с помощью VBA, все идет очень, очень неправильно. Независимо от того, используете ли вы вручную скопированный номер 160 из самого csv или вы его создаете с использованием Chr(160)
, если вы попытаетесь удалить все эти файлы, VBA также удалит половину запятых. Под запятой я имею в виду общеизвестный символ № 44, вы можете просматривать изображения «ascii» Google и проверять его. Я должен отметить это снова, замена затрагивает половину запятые, однако все они фактически являются тем же самым символом, я повторил это дважды.
Вы можете найти ссылку на csv ниже, так что вы можете успокоить себя тем, что я не сумасшедший.
Вот код, который вы можете использовать, чтобы воспроизвести магияОчень странно Найти/заменить поведение
Sub test()
Worksheets(1).UsedRange.Replace What:=Chr(160), Replacement:=""
End Sub
Я буду очень благодарен тому, кто прояснит это явление, потому что я просто не могу поверить, что VBA является , что глючит, я думаю, что я что-то пропустил где-то
ОБНОВЛЕНИЕ: Ребята, мне очень жаль. Я настолько тупой, что я загрузил неправильный CSV. Вот right one
У вас есть версия ссылки, которая не сокращается? – pnuts
@pnuts Это не сокращается, черная кнопка с надписью «Скачать» - это ваш выбор. – mekkanizer
. Ваш комментарий о запятой предлагает мне, что он преобразует текст с замененными текстами с текста на номер, который затем отображается как число без запятые. Запятая - это либо тысяча секторов в некоторых локалях, либо децимальный разделитель в других. Например, если я заменяю «» на «234, 567», тогда результат преобразуется в число 234567 (отображается на форматирование числа), хочу ли я этого или нет. Чтобы сохранить тип, вам нужно будет использовать цикл или что-то иное, кроме .Replace, или .replace number format to Text, прежде чем вы удалите символ. –