2016-12-12 6 views
0

Я хочу изменить следующиеExcel ячейки пользовательский формат и текст

123456789A1 

к

123-456-789 A1 


Справочная информация:

В Формат ячеек, я использовал это:

000-0000-00 00 

И это работает, если все в ячейке число,

12345678911 

станет

123-4567-89 11 

Но как только есть письмо, она разбивает его. Как я могу изменить тип, чтобы игнорировать буквы?

+0

Вам понадобится vba в событии Worksheet_Change. –

ответ

0

это пример:

Sub test() 

a = [A1] 

b = Left(a, 3) & "-" & Mid(a, 4, 3) & "-" & Mid(a, 7, 3) & " " & Right(a, 2) 

[A2] = b 
End Sub 

Но хочу вам 3 или 4 номера в Seconde положении?

если A1 = 123456789A1, то в A2: 123-456-789 A1

0

сотовый номер форматирования работает только на номера.

Если вы не возражаете изменить значения в текстовых строках, вы можете отформатировать их в VBA с помощью функции Format. Например:


Option Explicit 
Sub FMT() 
    Dim R As Range, C As Range 
    Const sFMT As String = "@@@[email protected]@@@[email protected]@ @@" 

Set R = Intersect(Range("A:A"), ActiveSheet.UsedRange) 

For Each C In R 
    C.Value = Format(C.Text, sFMT) 
Next C 

End Sub 

Вам нужно будет изменить аргументы диапазона, чтобы соответствовать тому, что вам нужно. И вы также можете использовать это в макросе, вызванном событиями, для этого.

Смежные вопросы