Команды добавляют 0 в соответствующие столбцы и ячейки - Excel vba - PullRequest
0 голосов
/ 11 марта 2019

У меня есть 2 команды для добавления 0 к номеру (8 цифр, требуется 9 цифр) и 0 добавлений к номерам сотового телефона (9 цифр, начинающихся с 5 цифр, должны быть 10 цифрами):

1.Добавьте от 0 до 8 цифр:

Sub Add_Zeros()
    Selection.NumberFormat = "@"
    For Each CL In Selection.Cells
        If CL <> "" Then CL.Value = Application.Rept("0", (9 - Len(CL))) & CL
    Next
End Sub

2.Добавьте от 0 до 9 цифр:

Sub Add_Zeros()
    Selection.NumberFormat = "@"
    For Each CL In Selection.Cells
        If CL <> "" Then CL.Value = Application.Rept("0", (10 - Len(CL))) & CL
    Next
End Sub

Могу ли я обновить эти коды иобъединить их следующим образом?:

A. Первое условие: если есть только 8 цифр, вы добавите 0 в начале (наконец, должно быть 9 цифр)

B. Второе условие: Если есть 9 цифр и первая цифра слева равна 5, вы добавляете 0 в начале (наконец, должно быть 10 цифр)

C. Что-то еще, как я могу вернуть команду обратно (т.е. доизменить) отменить?У вас есть способ вставить это в другой код?

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

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Select Case поможет вам выполнить ваши условия:

Sub Add_Zeros()

    Selection.NumberFormat = "@"

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

End Sub

Я проигнорировал вопрос C по 2 причинам; 1) потому что это не ясно и 2) каждый вопрос должен быть только один конкретный вопрос.

0 голосов
/ 11 марта 2019

не уверен, что я полностью понял, но вы можете сделать что-то подобное, используя if else и elseif

Function sort_out_phone(strPhoneIN As String) As String

If Len(strPhoneIN) = 8 Then
    sort_out_phone = "0" & strPhoneIN
ElseIf Len(strPhoneIN) = 9 And Left(strPhoneIN, 1) = "5" Then
    sort_out_phone = "0" & strPhoneIN
Else
    sort_out_phone = "What ever you need to do here"
End If

End Function

sort_out_phone ("12345678") = 012345678

sort_out_phone ("123456789") = Что вам нужно сделать здесь

sort_out_phone ("523456789") = 0523456789

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...