#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. Работает очень хорошо, большое вам спасибо, будьте благословенны с небес.