Страницы: Пред. 1 2
RSS
поставить пробел между текстом и цифрой с определённой буквой, в конце теста иногда встречаются прикреплённые цифры, их нужно отделить
 
Kuzmich, да я не хотел вас обидеть, задание писал уже порядком подуставший,- когда тыкаешь целый день, уже всех ньуансов невозможно учесть,- у вас так не бывает?? у вас всё супер работает, только куда его девать в моем случае неизвестно.
Код
With ActiveSheet 's("Домик")
        Set goods = .Columns(5).Find(what:="Наименование товара")
        lrow = .Cells(.Rows.count, 5).End(xlUp).row
        Set nrange = .Range(.Cells(goods.row, 5), .Cells(lrow, 5))
        Set objRegExp = CreateObject("VBScript.RegExp")
        'objRegExp.Pattern = "(\S)(\d){1,2}( )?([А-Яа-яA-zA-z])\b"
        'вот  здесь строго -тупо одну букву зырим
        objRegExp.Pattern = "(\S)(\d){1,2}( )?([Xx])\b"
         
        numb_temp = ""
        numb_goods = ""
        For i = lrow To goods.row Step -1
            If .Cells(i, 7).Value <> "" Then numb_temp = .Cells(i, 7).Value
            If objRegExp.test(.Cells(i, 5)) Then
                .Cells(i, 5).Interior.Color = 16709070
                numb_goods = IIf(numb_goods = "", numb_temp, numb_temp & ", " & numb_goods)
            End If
        Next
        If numb_goods <> "" Then MsgBox "в товаре(ах) № " & numb_goods & " есть неописанные фраги"
    End With
 
Цитата
куда его девать в моем случае неизвестно.
Код
Sub Razdel()
Dim iLastRow As Long
Dim i As Long
iLastRow = Cells(Rows.Count, "E").End(xlUp).Row
 With CreateObject("VBScript.RegExp")
     .IgnoreCase = True
     .Pattern = "([A-Z])(\d{1,2})(?=\s?[хx])"
   For i = 18 To iLastRow
     Cells(i, "AF") = .Replace(Cells(i, "E"), "$1 $2")
   Next
 End With
End Sub
 
Цитата
Kuzmich
, супер!)) спасибо!!
а как чтобы без AF было?? чтобы сразу по Е меняло??
я типа так зделал:
Cells(i, "E") = Cells(i, "AF")
но у меня некрасиво как-то получается...
Код
Sub Razdel()
Dim iLastRow As Long
Dim i As Long
iLastRow = Cells(Rows.Count, "E").End(xlUp).Row
 With CreateObject("VBScript.RegExp")
     .IgnoreCase = True
     .Pattern = "([A-Z])(\d{1,2})(?=\s?[õx])"
   For i = 18 To iLastRow
     Cells(i, "AF") = .Replace(Cells(i, "E"), "$1 $2")
     Cells(i, "E") = Cells(i, "AF")'  А можно, чтобы сразу Е превращалось в Е c пробелами????
   Next
 End With
End Sub
 
Код
Cells(i, "E") = .Replace(Cells(i, "E"), "$1 $2")
 
Kuzmich, спасибо!  :*
и ещё момент не могу осилить: как довести кол-во цифр до трёх? сейчас с одной- двумя работает, я на всякий случай чтобы три цифры макрос видел?
.Pattern = "([A-Z])(\d{1,2})(?=\s?[хx])" - где тут эти цифры есть?
Изменено: Домкрат - 15.11.2019 17:50:51
 
Цитата
где тут эти цифры есть?
d{1,2} от 1 до 2 цифр
 
Kuzmich, спасибо.
 
Цитата
Домкрат написал:
где тут эти цифры есть?
толи дело формулы -  кратко, понятно  :D
По вопросам из тем форума, личку не читаю.
 
Если вообще иксов нет, дописывает пробел в конце и не любит 8 и более цифр подряд:
Код
=ЗАМЕНИТЬ(E18;МИН(99;ЕСЛИ(ЕЧИСЛО(-ЛЕВБ(ПОДСТАВИТЬ(ПСТР(СТРОЧН(E18);СТОЛБЕЦ(A:CU);9);{"х":"x"};"       ");9));СТОЛБЕЦ(A:CU)));;" ")
 
Светлый, так цеж мой только с мин(99; и ограничениями :-)
В избушку мне трудно играть, у меня другие расклады, например LEFTB (ЛЕВБ) > LEFT(ЛЕВСИМВ), ROW(СТРОКА) < COLUMN(СТОЛБЕЦ), UPPER=LOWER … да мне кажется это уже и не важно и лучше убрать ограничения, а не убирать пару символов.
По вопросам из тем форума, личку не читаю.
 
всего 40 сообщений в теме, но пока еще не понятно как
Цитата
Домкрат написал:
поставить пробел между текстом и цифрой
похоже мы столкнулись с серьезной задачей
... или с очередной бестолковой постановкой задачи
я понимаю, что люди приходящие сюда за решением - не программисты и не могут ЧЕТКО сформулировать проблему (для программиста)
но они же люди (на латыни homo sapiens)
люди! то, что вы способны мыслить нужно доказывать в каждом вопросе
извините за эмоциональность совершенно не присущую рациональным программистам
Изменено: Ігор Гончаренко - 16.11.2019 04:45:45
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
но пока еще не понятно как
кому не понятно? лично вам?
-помнится, в личной переписке я конкретно вам расписал имя, место, строку, что конкретно макрос делает и вам также было непонятно, может это судьба такая??
а строка ниже, вас не смущает ничего в ней? тут тоже нипонятно?? ЛИЧНО вам?
Цитата
Домкрат написал:
Kuzmich , спасибо.
вот, когда я написал "слава вукраине", вам сразу стало всё понятно. тут у вас не было вопросов. а так да, согласен- ничего не понятно, вопрос КОМУ.
Изменено: Домкрат - 16.11.2019 06:25:33
 
если вы хотите получить ответ лично от меня, нужно угадать  вопрос лично мне
не обязательно угадать лично мне... угадайте кому-то одному, кто решит вашу задачу
или
еще 2-3 десятка ответов в теме и кто-то что-то угадает
не провтыкайте среди ответов ответ на ваш вопрос
удачи!
читал у кого-то из классиков: "стремительным домкратом"
ответ на ваш вопрос несется стремительным домкратом...
Изменено: Ігор Гончаренко - 16.11.2019 07:44:47
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Kuzmich, помог мне на 100%, остальные влажные ваши фантазии мне неизвестны) простите, туповат-с,- таким уродился))
Изменено: Домкрат - 16.11.2019 09:42:12
Страницы: Пред. 1 2
Наверх