Страницы: 1
RSS
Текстовый формат через текст по столбцам не ВПРится с текстовым форматом через формат ячейки
 
Всем добрый вечер!

Пожалуйста, помогите мне разобраться с переводом в текстовый формат с помощью макроса.
Во вложении файл-пример.
У меня есть число 5, которое я перевела в текстовый формат через текст по столбцам, и в ячейке с числом появился зеленый треугольничек. Это число я принимаю за эталон.
В 1 и 2 столбце есть формулы, итог которых дает 5. Моя цель - сделать результаты этих ячеек значениями в текстовом формате, чтобы их можно было сВПРить с эталонной "5".
В первом столбце в формуле участвует =ТЕКСТ..., поэтому с помощью макроса я просто копирую и вставляю как значение - в итоге всё так, как я хочу.
Во втором столбце формат общий. Макросом я копирую-вставляю как значение, затем перевожу в текстовый формат "@", но сверить с эталонной 5 не получается. Подозреваю, что всё дело в зеленом треугольничке. :)  Подскажите, пожалуйста, как можно перевести в текстовый формат макросом, чтобы можно было сверить с данными в текстовом формате с треугольничком? Ведь оба формата и так текстовые.
Изменено: suricat555 - 24.05.2020 21:56:09
 
Если правильно понял задачу:
Код
Worksheets("образец 1").[b2].Copy
Worksheets("образец 1").[b2].PasteSpecial Paste:=xlPasteValues
Worksheets("образец 1").[b2].NumberFormat = "@"
Worksheets("образец 1").[b2] = Application.WorksheetFunction.Text([b2], "@")
 
Код
Sub tt()
    [b2] = "'" & [b2]
End Sub

так проще, и надолго.
 
Добрый день! Весьма распространенный набор заблуждений. Факты заключаются в следующем.

1. Каждая ячейка может иметь один из 5 "базовых" типов значений: пустая, число, текст, логическое значение, ошибочное значение. Этот "базовый" тип в VBA можно узнать, проанализировав тип свойства Value2 ячейки.
2. "Базовое" значение ячейки не меняется при смене формата ячейки. То есть, если Вы в ячейку занесли число, то при смене формата на текстовый "базовое" значение останется числом.
3. "Зеленый треугольник" в Вашем случае предупреждает пользователя, что в ячейке содержится текст, который "похож" на число. Если выделить такую ячейку, то справа появится "желтый ромбик", который расшифрует предупреждение и предложит перечень возможный действий.
4. В формулах Excel всегда используется "базовое" значение, формат ячейки формула во внимание не принимает.
Владимир
 
_Igor_61, Hugo, оба варианта работают так, как я хотела! Спасибо вам!

sokol92, спасибо за полезную информацию! Я об этом не знала.
 
А я правильно понимаю, что функция Application.WorksheetFunction.Text применяется только для одной ячейки, а не для диапазона?

В справке написано про первый обязательный аргумент: "Числовое значение, формула, вычисление которой дает числовое значение, или ссылка на ячейку, содержащую числовое значение."  

Код
Worksheets("образец 1").[b2:b3] = Application.WorksheetFunction.Text([b2], "@")
- я конечно попробовала вместо b2 указать b2:b3, но вышла ошибка "Невозможно получить свойство Text класса WorksheetFunction."

Либо я как-то неправильно указываю диапазон, либо действительно можно так работать только с одной ячейкой... Подскажите, пожалуйста! :)

Для нескольких ячеек у меня получилось с помощью цикла For ... Next.
Изменено: suricat555 - 31.05.2020 23:07:55
Страницы: 1
Наверх