Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Копирование части имени файла в колонтитулы
 
Доброго времени суток.

Суть вопроса: в средний верхний колонтитул необходимо вставить по части ( в два места) названия файла. Перерыл всё, ничего не нашёл. Все названия файлов идентичные. Примерно вот такие - Enclosure 2.0 List of Anomalies KЭP 2018 Exc. 01-K3001 P2. Выудить необходимо выделенное жирным. Пишу макрос для перевода с английского на русский. До всего допёр кроме этого. Хоть убей не могу понять как запихнуть куски названия файла в колонтитул. последняя часть может быть либо Р1, либо Р2. остальное выделенное жирным варьируется и не всегда после K четыре цифры(может быть меньше, может быть больше). Если P1 - Подающий тр. Р1, если Р2 - Обратный тр. Р2.  
 
Много ненужной информации в сообщении. Если убрать лишнее, то вопрос, скорее всего, должен быть такой: Как получить правую часть строки определённого формата.

Идея такая:
- просматривать строку посимвольно с конца  
- найти последний дефис с конца
- пропустить пробел, если есть
- пропустить все символы до первого пробела
- т.е. получить позицию начала нужной части строки
- взять правую часть от строки

Код (написан за 5 мин)
Код
Sub test01()
Dim Z As String
Z = CutNumber(Trim(ActiveCell))
MsgBox Z
End Sub
Function CutNumber(ByVal S As String) As String
Dim i, j, x As String
i = Len(S)
If i = 0 Then Exit Function
    Do
    x = Mid(S, i, 1)
    i = i - 1
    Loop While x <> "-" And i > 0
    If i > 0 Then
        Do
        x = Mid(S, i, 1)
        i = i - 1
        Loop While x = " "
        Do
        x = Mid(S, i, 1)
        If x = "." Then Exit Do
        i = i - 1
        Loop While x <> " "
    CutNumber = Trim(Mid(S, i + 1))
    End If
End Function
Из стартового сообщения не ясно, откуда брать сами изначальные строки. В test01 строка берётся из активной ячейки листа.
Естественно, если дефиса в начальной строке нет, то вся идея не реализуется и нужно что-то другое.
Вставить полученное значение в колонтитул труда не составит.
 
Спасибо за ответ.
изначальная строка берётся из названия самого файла.
Enclosure 2.0 List of Anomalies KЭP 2018 Exc. 01-K3001 P2 - это пример названия
Изменено: Krendel - 18 Сен 2018 15:21:17
Страницы: 1
Читают тему (гостей: 1)
Наверх