Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Преобразование 192168001002 в 192.168.1.2 - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Преобразование 192168001002 в 192.168.1.2 (Формулы/Formulas)
Преобразование 192168001002 в 192.168.1.2
DrMini Дата: Четверг, 10.03.2016, 08:48 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 154
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013
В таблице надо вводить номера IP в локальной сети. Не могу додуматься, какой формат ячейки создать что бы при вводе:
192168001002 в ячейке писалось бы 192.168.1.2. И ячейки должны сортироваться по возрастанию и убыванию.
P.S. честно говоря не знаю азов в EXEL. Знания отрывочные из того, что найду в Internet`e. Всё, что нахожу на Этом сайте складываю в каталоги и по возможности использую. Иногда поняв, как работает изменяю.
Заранее спасибо.
 
Ответить
СообщениеВ таблице надо вводить номера IP в локальной сети. Не могу додуматься, какой формат ячейки создать что бы при вводе:
192168001002 в ячейке писалось бы 192.168.1.2. И ячейки должны сортироваться по возрастанию и убыванию.
P.S. честно говоря не знаю азов в EXEL. Знания отрывочные из того, что найду в Internet`e. Всё, что нахожу на Этом сайте складываю в каталоги и по возможности использую. Иногда поняв, как работает изменяю.
Заранее спасибо.

Автор - DrMini
Дата добавления - 10.03.2016 в 08:48
Pelena Дата: Четверг, 10.03.2016, 08:59 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 9867
Репутация: 2262 ±
Замечаний: 0% ±

Excel 2010 & Mac Excel 2011
Формулой не вариант?
Код
=--ЛЕВСИМВ(B21;3)&"."&--ПСТР(B21;4;3)&"."&--ПСТР(B21;7;3)&"."&--ПРАВСИМВ(B21;3)

Форматом только с нулями
000\.000\.000\.000


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеФормулой не вариант?
Код
=--ЛЕВСИМВ(B21;3)&"."&--ПСТР(B21;4;3)&"."&--ПСТР(B21;7;3)&"."&--ПРАВСИМВ(B21;3)

Форматом только с нулями
000\.000\.000\.000

Автор - Pelena
Дата добавления - 10.03.2016 в 08:59
dima_dan2012 Дата: Четверг, 10.03.2016, 09:22 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 7 ±
Замечаний: 0% ±

Excel 2003,2007
[vba]
Код
=СЦЕПИТЬ(ЛЕВСИМВ(A1;ДЛСТР(A1)-9);".";ПРАВСИМВ(ЛЕВСИМВ(A1;ДЛСТР(A1)-6);ДЛСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-6))-3);".";ПРАВСИМВ(ЛЕВСИМВ(A1;ДЛСТР(A1)-3);ДЛСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-3))-6);".";ПРАВСИМВ(A1;ДЛСТР(A1)-9))
[/vba]
 
Ответить
Сообщение[vba]
Код
=СЦЕПИТЬ(ЛЕВСИМВ(A1;ДЛСТР(A1)-9);".";ПРАВСИМВ(ЛЕВСИМВ(A1;ДЛСТР(A1)-6);ДЛСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-6))-3);".";ПРАВСИМВ(ЛЕВСИМВ(A1;ДЛСТР(A1)-3);ДЛСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-3))-6);".";ПРАВСИМВ(A1;ДЛСТР(A1)-9))
[/vba]

Автор - dima_dan2012
Дата добавления - 10.03.2016 в 09:22
dima_dan2012 Дата: Четверг, 10.03.2016, 09:41 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 7 ±
Замечаний: 0% ±

Excel 2003,2007
Во дела (--) - и убираются первые нули ;)
[vba]
Код

=СЦЕПИТЬ(--ЛЕВСИМВ(A1;ДЛСТР(A1)-9);".";--ПРАВСИМВ(ЛЕВСИМВ(A1;ДЛСТР(A1)-6);ДЛСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-6))-3);".";--ПРАВСИМВ(ЛЕВСИМВ(A1;ДЛСТР(A1)-3);ДЛСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-3))-6);".";--ПРАВСИМВ(A1;ДЛСТР(A1)-9))
[/vba]


Сообщение отредактировал dima_dan2012 - Четверг, 10.03.2016, 11:10
 
Ответить
СообщениеВо дела (--) - и убираются первые нули ;)
[vba]
Код

=СЦЕПИТЬ(--ЛЕВСИМВ(A1;ДЛСТР(A1)-9);".";--ПРАВСИМВ(ЛЕВСИМВ(A1;ДЛСТР(A1)-6);ДЛСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-6))-3);".";--ПРАВСИМВ(ЛЕВСИМВ(A1;ДЛСТР(A1)-3);ДЛСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-3))-6);".";--ПРАВСИМВ(A1;ДЛСТР(A1)-9))
[/vba]

Автор - dima_dan2012
Дата добавления - 10.03.2016 в 09:41
Nic70y Дата: Четверг, 10.03.2016, 19:45 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3483
Репутация: 722 ±
Замечаний: 0% ±

Excel 2013
Код
=ТЕКСТ(ЛЕВБ(A1;6)&ПСТР(A1;9;1)&ПРАВБ(A1);"###\.###\.#\.#")
для разнообразия
поспешил - видать неправильно :(


ЯД(poison) 41001841029809
+7 978 049 98 74 (мтс)


Сообщение отредактировал Nic70y - Четверг, 10.03.2016, 19:50
 
Ответить
Сообщение
Код
=ТЕКСТ(ЛЕВБ(A1;6)&ПСТР(A1;9;1)&ПРАВБ(A1);"###\.###\.#\.#")
для разнообразия
поспешил - видать неправильно :(

Автор - Nic70y
Дата добавления - 10.03.2016 в 19:45
МВТ Дата: Четверг, 10.03.2016, 21:39 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 475
Репутация: 136 ±
Замечаний: 0% ±

Excel 2007
Не вставлял проверку на валидность адреса, сделал только разбивку. Проверяйте
[vba]
Код
Function GetIp(Text As String) As String
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "(\d{3})(\d{3})(\d{1,3})(\d{1,3})"
        GetIp = .Replace(Text, "$1.$2.$3.$4")
        .Pattern = "(?:\.|^)0+"
        GetIp = .Replace(GetIp, ".")
    End With
End Function
[/vba]
UPD так с проверкой павильности
[vba]
Код
Function GetIp(Text As String) As String
    Dim arr, I As Integer
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "(\d{3})(\d{3})(\d{1,3})(\d{1,3})"
        Text = .Replace(Text, "$1.$2.$3.$4")
        If Text = "" Then Exit Function
        arr = Split(Text, ".")
        For I = 0 To UBound(arr)
            arr(I) = Val(arr(I))
            If arr(I) > 255 Then Exit Function
        Next
        GetIp = Join(arr, ".")
    End With
End Function
[/vba]


Сообщение отредактировал МВТ - Четверг, 10.03.2016, 22:08
 
Ответить
СообщениеНе вставлял проверку на валидность адреса, сделал только разбивку. Проверяйте
[vba]
Код
Function GetIp(Text As String) As String
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "(\d{3})(\d{3})(\d{1,3})(\d{1,3})"
        GetIp = .Replace(Text, "$1.$2.$3.$4")
        .Pattern = "(?:\.|^)0+"
        GetIp = .Replace(GetIp, ".")
    End With
End Function
[/vba]
UPD так с проверкой павильности
[vba]
Код
Function GetIp(Text As String) As String
    Dim arr, I As Integer
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "(\d{3})(\d{3})(\d{1,3})(\d{1,3})"
        Text = .Replace(Text, "$1.$2.$3.$4")
        If Text = "" Then Exit Function
        arr = Split(Text, ".")
        For I = 0 To UBound(arr)
            arr(I) = Val(arr(I))
            If arr(I) > 255 Then Exit Function
        Next
        GetIp = Join(arr, ".")
    End With
End Function
[/vba]

Автор - МВТ
Дата добавления - 10.03.2016 в 21:39
DrMini Дата: Пятница, 11.03.2016, 14:07 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 154
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013
МВТ, Спасибо. Последний макрос прелесть. Только мне надо, что бы в какую ячейку я вношу данные в той же они и правились. Получается циклическая ссылка. Но всё равно СПАСИБО БОЛЬШОЕ.
 
Ответить
СообщениеМВТ, Спасибо. Последний макрос прелесть. Только мне надо, что бы в какую ячейку я вношу данные в той же они и правились. Получается циклическая ссылка. Но всё равно СПАСИБО БОЛЬШОЕ.

Автор - DrMini
Дата добавления - 11.03.2016 в 14:07
DrMini Дата: Пятница, 11.03.2016, 14:21 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 154
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013
МВТ, Проверил и первый макрос. Если вводишь первую часть IP до 100 - то выдаёт точку перед IP адресом. Пример: 010090090091 выдаёт .10.90.90.91
Дорабатывать не надо. Просто может Вам пригодится. Ещё раз спасибо за Ваш труд.
 
Ответить
СообщениеМВТ, Проверил и первый макрос. Если вводишь первую часть IP до 100 - то выдаёт точку перед IP адресом. Пример: 010090090091 выдаёт .10.90.90.91
Дорабатывать не надо. Просто может Вам пригодится. Ещё раз спасибо за Ваш труд.

Автор - DrMini
Дата добавления - 11.03.2016 в 14:21
abtextime Дата: Пятница, 11.03.2016, 14:29 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 427
Репутация: 60 ±
Замечаний: 0% ±

Excel 2010
DrMini, Вам же не предлагают функцию GetIP прямо в ячейки для ввода IP пихать, это и не получится. Сделайте свой простенький макрос-процедуру (Sub) на основе вызова данной функции.
 
Ответить
СообщениеDrMini, Вам же не предлагают функцию GetIP прямо в ячейки для ввода IP пихать, это и не получится. Сделайте свой простенький макрос-процедуру (Sub) на основе вызова данной функции.

Автор - abtextime
Дата добавления - 11.03.2016 в 14:29
DrMini Дата: Пятница, 11.03.2016, 16:31 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 154
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013
abtextime,
Цитата
Сделайте свой простенький макрос-процедуру (Sub) на основе вызова данной функции.

Извиняюсь. Но я в этом не силён. Пока только простейшие формулы и форматы ячейки пытаюсь выучить. С 1996 года собирал компьютеры и ставил Windows. А тут полгода назад попробовал и затянуло. Рядом спросить некого. Ладно есть ЭТОТ сайт. Сейчас поищу в поисковике может получится. За пояснение спасибо.


Сообщение отредактировал DrMini - Пятница, 11.03.2016, 16:35
 
Ответить
Сообщениеabtextime,
Цитата
Сделайте свой простенький макрос-процедуру (Sub) на основе вызова данной функции.

Извиняюсь. Но я в этом не силён. Пока только простейшие формулы и форматы ячейки пытаюсь выучить. С 1996 года собирал компьютеры и ставил Windows. А тут полгода назад попробовал и затянуло. Рядом спросить некого. Ладно есть ЭТОТ сайт. Сейчас поищу в поисковике может получится. За пояснение спасибо.

Автор - DrMini
Дата добавления - 11.03.2016 в 16:31
Udik Дата: Пятница, 11.03.2016, 16:46 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1215
Репутация: 153 ±
Замечаний: 0% ±

Excel 2013
Начинайте с эвента листа Change B) .


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеНачинайте с эвента листа Change B) .

Автор - Udik
Дата добавления - 11.03.2016 в 16:46
МВТ Дата: Пятница, 11.03.2016, 18:58 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 475
Репутация: 136 ±
Замечаний: 0% ±

Excel 2007
Есть еще одна проблема: если 3-я и/или 4-я часть адреса введена меньше, чем из 3- цифр, то максимальный кусок будет засчитан 3-й части. Например, 1921682123 будет интерпретировано как 192.168.212.3, а не как, например 192.168.21.23. Но здесь ничего не поделать, откуда алгоритму знать, что мы имели в виду :D ?
 
Ответить
СообщениеЕсть еще одна проблема: если 3-я и/или 4-я часть адреса введена меньше, чем из 3- цифр, то максимальный кусок будет засчитан 3-й части. Например, 1921682123 будет интерпретировано как 192.168.212.3, а не как, например 192.168.21.23. Но здесь ничего не поделать, откуда алгоритму знать, что мы имели в виду :D ?

Автор - МВТ
Дата добавления - 11.03.2016 в 18:58
StoTisteg Дата: Суббота, 12.03.2016, 20:50 | Сообщение № 13
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
Прописать проверку длины и пусть ругается, если символов меньше 12.


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
СообщениеПрописать проверку длины и пусть ругается, если символов меньше 12.

Автор - StoTisteg
Дата добавления - 12.03.2016 в 20:50
DrMini Дата: Понедельник, 14.03.2016, 21:48 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 154
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013
abtextime,
Цитата
Сделайте свой простенький макрос-процедуру (Sub) на основе вызова данной функции.

Покажите пожалуйста на моём примере, как это сделать. Три дня в свободное время копался в Internet`e - так и не осилил.
P.S. для этой таблицы это не нужно. Но. ОЧЕНЬ заинтересовало. Спасибо за любой ответ.
 
Ответить
Сообщениеabtextime,
Цитата
Сделайте свой простенький макрос-процедуру (Sub) на основе вызова данной функции.

Покажите пожалуйста на моём примере, как это сделать. Три дня в свободное время копался в Internet`e - так и не осилил.
P.S. для этой таблицы это не нужно. Но. ОЧЕНЬ заинтересовало. Спасибо за любой ответ.

Автор - DrMini
Дата добавления - 14.03.2016 в 21:48
_Boroda_ Дата: Понедельник, 14.03.2016, 22:29 | Сообщение № 15
Группа: Модераторы
Ранг: Экселист
Сообщений: 9374
Репутация: 3947 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Посмотрите еще такой простенький вариант
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not IsNumeric(Target) Then Exit Sub
    If Len(Target) <> 12 Then Exit Sub
    n_ = Format(Target, "000\.000\.000\.000")
    Target = Replace(Replace(n_, ".00", "."), ".0", ".")
End Sub
[/vba]
И варианты формулой
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ(A1;"# 0");" 00";".");" 0";".");" ";".")

Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ(A1;"000\.000\.000\.000");".00";".");".0";".")
К сообщению приложен файл: 543174684.xlsm(14Kb) · 4135876387.xlsx(8Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПосмотрите еще такой простенький вариант
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not IsNumeric(Target) Then Exit Sub
    If Len(Target) <> 12 Then Exit Sub
    n_ = Format(Target, "000\.000\.000\.000")
    Target = Replace(Replace(n_, ".00", "."), ".0", ".")
End Sub
[/vba]
И варианты формулой
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ(A1;"# 0");" 00";".");" 0";".");" ";".")

Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ(A1;"000\.000\.000\.000");".00";".");".0";".")

Автор - _Boroda_
Дата добавления - 14.03.2016 в 22:29
МВТ Дата: Понедельник, 14.03.2016, 22:38 | Сообщение № 16
Группа: Проверенные
Ранг: Обитатель
Сообщений: 475
Репутация: 136 ±
Замечаний: 0% ±

Excel 2007
Вот такой код, если вставить его в модуль листа, будет автоматически заменять введенное 12-тизначное число на IP адрес или на значение присваиваемое константе ErrMsg (можете заменить его, например на "Ошибка!!!") Диапазон, в котором идет проверка задается константой RngAddress.
[vba]
Код
Const RngAddress = "A1:A10"
Const ErrMsg = ""
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Intersect(Target, Range(RngAddress)) Is Nothing Then Exit Sub
    Application.EnableEvents = False
     With Target
        If .Value Like "############" Then
           Dim arr(0 To 3), I As Integer, S As String
           For I = 1 To 4
           S = Mid(.Value, 1 + (I - 1) * 3, 3)
           arr(I - 1) = Val(S)
           If arr(I - 1) > 255 Then
               .Value = ErrMsg
               Application.EnableEvents = True
               Exit Sub
           End If
           Next
            .Value = Join(arr, ".")
        Else
            .Value = ErrMsg
        End If
        Application.EnableEvents = True
    End With
End Sub
[/vba]
 
Ответить
СообщениеВот такой код, если вставить его в модуль листа, будет автоматически заменять введенное 12-тизначное число на IP адрес или на значение присваиваемое константе ErrMsg (можете заменить его, например на "Ошибка!!!") Диапазон, в котором идет проверка задается константой RngAddress.
[vba]
Код
Const RngAddress = "A1:A10"
Const ErrMsg = ""
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Intersect(Target, Range(RngAddress)) Is Nothing Then Exit Sub
    Application.EnableEvents = False
     With Target
        If .Value Like "############" Then
           Dim arr(0 To 3), I As Integer, S As String
           For I = 1 To 4
           S = Mid(.Value, 1 + (I - 1) * 3, 3)
           arr(I - 1) = Val(S)
           If arr(I - 1) > 255 Then
               .Value = ErrMsg
               Application.EnableEvents = True
               Exit Sub
           End If
           Next
            .Value = Join(arr, ".")
        Else
            .Value = ErrMsg
        End If
        Application.EnableEvents = True
    End With
End Sub
[/vba]

Автор - МВТ
Дата добавления - 14.03.2016 в 22:38
DrMini Дата: Понедельник, 14.03.2016, 22:54 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 154
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013
_Boroda_, СПАСИБО за ответ. Как я и говорил формулы мне не пригодятся в этой таблице, но в свою "коллекцию" сохранил. Процедура (Sub) работает на всём листе. hands yes
 
Ответить
Сообщение_Boroda_, СПАСИБО за ответ. Как я и говорил формулы мне не пригодятся в этой таблице, но в свою "коллекцию" сохранил. Процедура (Sub) работает на всём листе. hands yes

Автор - DrMini
Дата добавления - 14.03.2016 в 22:54
DrMini Дата: Понедельник, 14.03.2016, 22:57 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 154
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013
МВТ, Ну, а после Вашего ответа тему можно закрывать. Забираю. Спасибо. Всё наглядно и понятно (даже мне).
hands yes :D
 
Ответить
СообщениеМВТ, Ну, а после Вашего ответа тему можно закрывать. Забираю. Спасибо. Всё наглядно и понятно (даже мне).
hands yes :D

Автор - DrMini
Дата добавления - 14.03.2016 в 22:57
МВТ Дата: Понедельник, 14.03.2016, 23:00 | Сообщение № 19
Группа: Проверенные
Ранг: Обитатель
Сообщений: 475
Репутация: 136 ±
Замечаний: 0% ±

Excel 2007
С учетом более простых проверок, взятых из кода Александра (что-то я немножко перемудрил), можно сделать так
[vba]
Код
Const RngAddress = "A1:A10"
Const ErrMsg = ""

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Intersect(Target, Range(RngAddress)) Is Nothing Then Exit Sub
     Application.EnableEvents = False
     With Target
        If IsNumeric(.Value) And Len(.Value) = 12 Then
            Dim arr, I As Integer
            arr = Split(Format(.Value, "000\.000\.000\.000"), ".")
            For I = 0 To 3
                arr(I) = Val(arr(I))
                If arr(I) > 255 Then
                    .Value = ErrMsg
                    GoTo 1
                End If
            Next
                S = Join(arr, ".")
        Else
            .Value = ErrMsg
            GoTo 1
        End If
        .Value = S
1:         Application.EnableEvents = True
    End With
End Sub
[/vba]
 
Ответить
СообщениеС учетом более простых проверок, взятых из кода Александра (что-то я немножко перемудрил), можно сделать так
[vba]
Код
Const RngAddress = "A1:A10"
Const ErrMsg = ""

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Intersect(Target, Range(RngAddress)) Is Nothing Then Exit Sub
     Application.EnableEvents = False
     With Target
        If IsNumeric(.Value) And Len(.Value) = 12 Then
            Dim arr, I As Integer
            arr = Split(Format(.Value, "000\.000\.000\.000"), ".")
            For I = 0 To 3
                arr(I) = Val(arr(I))
                If arr(I) > 255 Then
                    .Value = ErrMsg
                    GoTo 1
                End If
            Next
                S = Join(arr, ".")
        Else
            .Value = ErrMsg
            GoTo 1
        End If
        .Value = S
1:         Application.EnableEvents = True
    End With
End Sub
[/vba]

Автор - МВТ
Дата добавления - 14.03.2016 в 23:00
_Boroda_ Дата: Понедельник, 14.03.2016, 23:33 | Сообщение № 20
Группа: Модераторы
Ранг: Экселист
Сообщений: 9374
Репутация: 3947 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Михаил, да Вы маньяк! :D
arr = Split(Format(.Value, "000\.000\.000\.000"), ".")

[vba]
Код
arr = Split(Format(.Value, "000 000 000 000"), " ")
[/vba]или
[vba]
Код
arr = Split(Format(.Value, "Standard"), " ")
[/vba]В кавычках второго кода символ 160
https://msdn.microsoft.com/ru-ru/library/office/gg251755.aspx Перевод, правда, немного дурной.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМихаил, да Вы маньяк! :D
arr = Split(Format(.Value, "000\.000\.000\.000"), ".")

[vba]
Код
arr = Split(Format(.Value, "000 000 000 000"), " ")
[/vba]или
[vba]
Код
arr = Split(Format(.Value, "Standard"), " ")
[/vba]В кавычках второго кода символ 160
https://msdn.microsoft.com/ru-ru/library/office/gg251755.aspx Перевод, правда, немного дурной.

Автор - _Boroda_
Дата добавления - 14.03.2016 в 23:33
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Преобразование 192168001002 в 192.168.1.2 (Формулы/Formulas)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!