Страницы: 1
RSS
Числа в Текст
 
Добрый день.
Помогите решить проблему.
Нужно из цифр сделать текст, почему мой код изменяет только одну выделенную ячейку.
Если выделить диапазон то ошибка.
Код
Sub Convert_Numbers_to_Text()
    Selection.NumberFormat = "@"
    Selection.Value = CStr(Selection.Value)
End Sub
 
Я в VBA ничего не понимаю, но свойство .value нет у диапазона ячеек. Поэтому для диапазона надо выбрать все ячейки по очереди.
Если автоматизировать бардак, то получится автоматизированный бардак.
 
Цитата
wowick написал:
свойство .value нет у диапазона ячеек
Уверены?
Код
Sub qqq()
    Range("A1:A5").Value = "Мой текст"
End Sub
 
уберите 3 строку
Изменено: magistor8 - 05.04.2019 14:37:39
 
Код
Sub Button1_Click()
    Selection.NumberFormat = "@"
    For Each r In Selection
        r.Value = CStr(r.Value)
    Next r
End Sub
Изменено: skais675 - 05.04.2019 14:35:26
 
Цитата
magistor8 написал:
уберите 3 строку
Коллега, распространенное заблуждение. Выполнить в новой книге:
Код
Sub test()
 With Range("A1")
   .Value = 1
   .NumberFormat = "@"
   MsgBox TypeName(.Value)
 End With
End Sub

Число после изменения формата ячейки остается числом (хотя и выравнивается по значению как текст).
Если же в начале занести в ячейку дату, то после изменения формата ячейки на текстовый типом значения ячейки также будет "Double".

#5 не отработает правильно без предварительного изменения формата ячеек на текстовый.
Владимир
 
sokol92, Поправил, спасибо!
 
Чтобы каждая ячейка сохранила индивидуальное форматирование
Код
Sub Convert_Numbers_to_Text()
Dim c As Range, v
  For Each c In Selection
    v = c.Text
    c.NumberFormat = "@"
    c.Value = v
  Next
End Sub
 
Спасибо!
Страницы: 1
Наверх