Уважаемые знатоки Excel. При вводе цифр в ячейку надо, чтобы после ввода пяти любых цыфр автоматом ставилось двоеточие, потом после ввода двох цыфр, а потом после трех. Потом добавляю еще 4 цыфры и ВВОД. Т.е, я ввожу 5 цыфр, Excel автоматом в этом же режиме редактирования ставит двоеточие и курсор ставится за двоеточием для ввода следующих цыфр и т.д. Пример: надо ввести кадастовый номер: 86400:02:000:5632. Если корректирую этот номер, например с помощью клавиши Backspase из этого номера удаляю 10 последних знаков и ввожу другие цыфры, Excel сам отслеживает и раставляет двоеточие. Не знаю, возможно ли такое сделать вообще. Благодарю всех, кто откликнется.
Уважаемые знатоки Excel. При вводе цифр в ячейку надо, чтобы после ввода пяти любых цыфр автоматом ставилось двоеточие, потом после ввода двох цыфр, а потом после трех. Потом добавляю еще 4 цыфры и ВВОД. Т.е, я ввожу 5 цыфр, Excel автоматом в этом же режиме редактирования ставит двоеточие и курсор ставится за двоеточием для ввода следующих цыфр и т.д. Пример: надо ввести кадастовый номер: 86400:02:000:5632. Если корректирую этот номер, например с помощью клавиши Backspase из этого номера удаляю 10 последних знаков и ввожу другие цыфры, Excel сам отслеживает и раставляет двоеточие. Не знаю, возможно ли такое сделать вообще. Благодарю всех, кто откликнется.ivanov1974
Почти то, что Вам хочется - это использование особых элементов EXCEL. Например, комбобокс. В модуль листа нужно добавить программу, которая будет реагировать на выделение курсором определенных ячеек, либо на двойной клик, либо что-то еще по Вашему выбору из того, что может EXCEL. При этом будет вызываться к жизни комбобокс, в котором программным образом реализуется то, что Вы описали. После редактирования комбобокса рожденное в нем значение может быть записано в ячейку.
Почти то, что Вам хочется - это использование особых элементов EXCEL. Например, комбобокс. В модуль листа нужно добавить программу, которая будет реагировать на выделение курсором определенных ячеек, либо на двойной клик, либо что-то еще по Вашему выбору из того, что может EXCEL. При этом будет вызываться к жизни комбобокс, в котором программным образом реализуется то, что Вы описали. После редактирования комбобокса рожденное в нем значение может быть записано в ячейку.Perfect2You
ivanov1974, можно регулярными выражениями попробовать редактировать, при вызове события Worksheet_Change, но это всё-таки будет отличаться от Вашего виденья. Поскольку знаки двоеточия появляться в нужном месте будут только после ввода 14-ти чисел: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim s As String Dim objRegExp As Object s = Replace(Target.Text, ":", "") Set objRegExp = CreateObject("VBScript.RegExp") objRegExp.Global = True objRegExp.Pattern = "(\d{5})(\d{2})(\d{3})(\d{4})" Target = objRegExp.Replace(s, "$1:$2:$3:$4") End Sub
[/vba] [p.s.]похоже это то, что имела в виду Manyasha) и почти не отличается от предложенного во 2-м посте формата.[/p.s.]
ivanov1974, можно регулярными выражениями попробовать редактировать, при вызове события Worksheet_Change, но это всё-таки будет отличаться от Вашего виденья. Поскольку знаки двоеточия появляться в нужном месте будут только после ввода 14-ти чисел: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim s As String Dim objRegExp As Object s = Replace(Target.Text, ":", "") Set objRegExp = CreateObject("VBScript.RegExp") objRegExp.Global = True objRegExp.Pattern = "(\d{5})(\d{2})(\d{3})(\d{4})" Target = objRegExp.Replace(s, "$1:$2:$3:$4") End Sub
[/vba] [p.s.]похоже это то, что имела в виду Manyasha) и почти не отличается от предложенного во 2-м посте формата.[/p.s.]Roman777
Много чего не знаю!!!!
Сообщение отредактировал Roman777 - Среда, 02.08.2017, 21:47