VBA — код, который возвращает меня в исходное состояние (возможно, изменяя тип поля с «текст» на «число»)

#excel #vba #text #numbers

#excel #vba #текст #числа

Вопрос:

У меня есть команда vba, которая добавляет 0 (там, где мне это нужно) к определенному правилу, которое имеет отношение к моей цели. Команда преобразует ячейки в тип «текст». Меня интересует команда исправления, которая отменяет мой заказ (в некоторых случаях мне приходится возвращаться) Вот мой код:

 Sub Add_Zeros()

    Selection.NumberFormat = "@"

    For Each CL In Selection.Cells
        Select Case Len(CL)
            Case 8: CL.Value = "0" amp; CL.Value
            Case 9: CL.Value = IIf(Left(CL.Value, 1) = 5, "0", "") amp; CL.Value
            Case "" 'do nothing
            Case Else
       End Select
    Next

End Sub
  

У вас есть код, который восстанавливает предыдущее действие? Возможно, возвращая ячейкам их исходный тип на «число»

Заранее спасибо ,

Комментарии:

1. Числа не имеют начальных нулей, если вы не отформатируете ячейку как 000000000 . Вы можете вернуть числовое значение с помощью val(CL.Value) или int(CL.Value) или CLng(CL.Value) .

Ответ №1:

Если все, что вы хотите сделать, это удалить начальные нули, вы можете сделать что-то вроде этого:

 Sub remove_Zeros()

    With Selection
        .NumberFormat = "General"
        .Value = .Value
    End With

End Sub
  

Комментарии:

1. Работает очень хорошо, большое вам спасибо, будьте благословенны с небес.