1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

помогите поправить макрос

Тема в разделе "Visual Basic", создана пользователем tem1112, 5 ноя 2009.

  1. tem1112

    tem1112 Гость

    Репутация:
    0
    ПОМОГИТЕ

    В ячейках последовательность кодов они разделены между собой " - " (пробел дефис пробел) нужно оставлять в ячейке только 65 символов при этом строка всегда будет оканчиваться на "- " (дефис пробел), (т.к. коды имеют одинаковую длину), а остальные будут переноситься ниже, во вновь созданную строку, где опять будет проверяться условие на 65 символов. Но в коде может встречаться текст (21 символ) делить его нельзя, и если при этом условие 65 символов будет дробить этот текст, то нужно перенести его ниже во вновь созданную строку, ячейку снизу. и при этом проверить чтобы последними символами в этой строке были "- " (дефис пробел)(в такой последовательности), если это не так сдвигаться влево пока это условие не выполнится, далее переносы и осуществлять также.

    Есть макрос
    <!--shcode--><pre><code class='vb'>Sub jurnal()
    l = 1
    s = Worksheets("Лист1").Cells(l, 4).Value
    While Len(s) > 0
    s = Worksheets("Лист1").Cells(l, 4).Value
    If Len(s) > 65 Then
    Worksheets("Лист1").Cells(l, 4).Value = Left(s, 65)
    Worksheets("Лист1").Rows(l + 1).Insert
    Worksheets("Лист1").Cells(l + 1, 4).Value = Right(s, Len(s) - 65)
    End If
    l = l + 1
    Wend
    End Sub[/CODE]
    как его поправить чтобы он работал так же, но при достижении в тексте определенного фрагмента (в 21 символ), который нельзя разделить и если этот фрагмент не укладывается в условие 65 символов в ячейке, то происходит перенос на новую ячейку снизу и дальше все также но в этой строке (с неделимым текстом) в любом случае нужно проверить если последние два символа в этой строке не "- " (дефис, пробел)(именно в такой последовательности), то необходимо смещаться влево до тех пор пока последними не станут эти символы, и перенос на новую ячейку снизу, далее все также.

    Заранее благодарен.
     
  2. alex777

    alex777 Гость

    Репутация:
    0
    Надо знать фрагмент и проверять его наличие в 65 символах

    что-то типа:
    If Len(s) > 65 Then

    if Instr(1, Left(s, 65), фрамент) > 0 Then
    Dim N ' начало фрагмента
    Dim P ' позиция " -"
    N = Instr(1, Left(s, 65), фрамент) - 1
    P = Instr(1, Left(s, 130), " -") - 1
    здесь код добавления ячейки. Перенос в новую ячейку кода
    Worksheets("Лист1").Cells(l + 1, 4).Value = Mid(s, N, P)


    End If

    Worksheets("Лист1").Cells(l, 4).Value = Left(s, 65)
    Worksheets("Лист1").Rows(l + 1).Insert
    Worksheets("Лист1").Cells(l + 1, 4).Value = Right(s, Len(s) - 65)

    End If
     
Загрузка...
Похожие Темы - помогите поправить макрос
  1. number27
    Ответов:
    0
    Просмотров:
    77
  2. Rina
    Ответов:
    0
    Просмотров:
    93
  3. maksiiimka
    Ответов:
    2
    Просмотров:
    91
  4. Ким
    Ответов:
    23
    Просмотров:
    611
  5. Sr233
    Ответов:
    2
    Просмотров:
    195

Поделиться этой страницей