Страницы: 1
RSS
Перевести значения в выделенных ячейках в цифры
 
Можно ли как-то через VBA обработать выделенные ячейки формулой ЗНАЧЕН(), а то приходится делать второй столбец в него вставлять формулу и протягивать до низа, потом выделять новый столбец, вставлять только значения, удалять старый столбец?
Изменено: tchack - 23.06.2022 16:44:36
 
Код
Sub Convert()
  Selection = Selection.Value
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
наверное, правильнее будет так:
Код
Sub ConvertSelectionToNum()
  Selection.FormulaLocal = Selection.FormulaLocal
End Sub
но при условии, что в ячейках значения, а не формулы. Если формулы - то сначала надо применить макрос Игоря, продемонстрированный выше.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Да, работает. Спасибо.

Код
Public Sub Convert()

    Dim rRange As Range, rCell As Range
    Set rRange = Intersect(Selection, ActiveSheet.UsedRange)
    For Each rCell In rRange
        Selection = Selection.Value
        Selection.FormulaLocal = Selection.FormulaLocal
    Next
    
End Sub
 
Цикл лишний, равно как и Selection в такой реализации. Попробуйте так - должно быть в разы быстрее:
Код
Public Sub Convert() 
    Dim rRange As Range
    Set rRange = Intersect(Selection, ActiveSheet.UsedRange)
    rRange = rRange.Value
    rRange.FormulaLocal = rRange.FormulaLocal
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков: Цикл лишний
для диапазона из нескольких областей нужен цикл по областям  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх