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

Вход

Регистрация

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

 

= Мир MS Excel/Смена макросом - выборочного текстового значения в txt - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Смена макросом - выборочного текстового значения в txt
perven Дата: Понедельник, 02.10.2017, 20:51 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всем добрый вечер.
Помогите, плз разобраться.

Имеется текстовый файл, заполненный текстово-числовыми значениями.
На девятой строке этого текста, на расстоянии двенадцати символов от начала строки - стоит число "52".

Как макросом - заставить смениться именно это число (не затрагивая прочий текст), на то число, которое вписано в ячейку D3 - на листе экселя ?
К сообщению приложен файл: 45679877.xls (28.0 Kb) · 9625071.txt (0.1 Kb)
 
Ответить
СообщениеВсем добрый вечер.
Помогите, плз разобраться.

Имеется текстовый файл, заполненный текстово-числовыми значениями.
На девятой строке этого текста, на расстоянии двенадцати символов от начала строки - стоит число "52".

Как макросом - заставить смениться именно это число (не затрагивая прочий текст), на то число, которое вписано в ячейку D3 - на листе экселя ?

Автор - perven
Дата добавления - 02.10.2017 в 20:51
Shurf Дата: Вторник, 03.10.2017, 05:20 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 8 ±
Замечаний: 0% ±

Excel 2010
perven, Не скажу на 100%, но вроде как запись в какую-либо позицию текстового файла новых данных затирает старые данные, начиная с этой позиции.
Если вам известны номер строки, номер позиции и то что нужно заменить, можно просто перезаписать этот txt
Например так. В [D1] = номер строки, в [D2] номер вхождения текста который нужно заменить, [D3] - сам текст который нужно менять. Путь к файлу на свой замените.
[vba]
Код
Sub test()
    Dim str As String
    FreeRow = 1
    aFile = "C:\Users\Katalog\Documents\1234.txt"
    Open aFile For Input As #1
        Do
            Line Input #1, str
            Cells(FreeRow, 1) = str
            FreeRow = FreeRow + 1
        Loop Until EOF(1)
    Close #1
    str2 = Cells([D1], 1)
    Set rn = Range("A1").Resize(Cells(Rows.Count, 1).End(xlUp).Row)
    Cells([D1], 1) = Left(str2, [D2]) & [D4] & Right(str2, Len(str2) - [D2] - Len([D3]))
    Open aFile For Output As #1
        For Each c In rn.Cells: Print #1, c: Next
    Close #1
rn.ClearContents
End Sub
[/vba]
 
Ответить
Сообщениеperven, Не скажу на 100%, но вроде как запись в какую-либо позицию текстового файла новых данных затирает старые данные, начиная с этой позиции.
Если вам известны номер строки, номер позиции и то что нужно заменить, можно просто перезаписать этот txt
Например так. В [D1] = номер строки, в [D2] номер вхождения текста который нужно заменить, [D3] - сам текст который нужно менять. Путь к файлу на свой замените.
[vba]
Код
Sub test()
    Dim str As String
    FreeRow = 1
    aFile = "C:\Users\Katalog\Documents\1234.txt"
    Open aFile For Input As #1
        Do
            Line Input #1, str
            Cells(FreeRow, 1) = str
            FreeRow = FreeRow + 1
        Loop Until EOF(1)
    Close #1
    str2 = Cells([D1], 1)
    Set rn = Range("A1").Resize(Cells(Rows.Count, 1).End(xlUp).Row)
    Cells([D1], 1) = Left(str2, [D2]) & [D4] & Right(str2, Len(str2) - [D2] - Len([D3]))
    Open aFile For Output As #1
        For Each c In rn.Cells: Print #1, c: Next
    Close #1
rn.ClearContents
End Sub
[/vba]

Автор - Shurf
Дата добавления - 03.10.2017 в 05:20
perven Дата: Вторник, 03.10.2017, 05:48 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Shurf, все работает. Большое вам спасибо.
 
Ответить
СообщениеShurf, все работает. Большое вам спасибо.

Автор - perven
Дата добавления - 03.10.2017 в 05:48
  • Страница 1 из 1
  • 1
Поиск:

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