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

Вход

Регистрация

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

 

= Мир MS Excel/Запись в столбец эксель - данных из txt - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Запись в столбец эксель - данных из txt
Glass4217 Дата: Среда, 22.05.2019, 06:21 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Доброго времени суток.
Помогите разобраться с макросом.

Имеется файл "Текстовый файл.txt", где строго построчно записаны текстовые данные.

Как макросом - заполнить столбец H - построчными данными из txt, начиная с того места, где кончаются единицы в столбце F ?
В данном случае заполнение начнется со строки H33.
К сообщению приложен файл: 6956932.xls (31.5 Kb) · 8482071.txt (0.2 Kb)
 
Ответить
СообщениеДоброго времени суток.
Помогите разобраться с макросом.

Имеется файл "Текстовый файл.txt", где строго построчно записаны текстовые данные.

Как макросом - заполнить столбец H - построчными данными из txt, начиная с того места, где кончаются единицы в столбце F ?
В данном случае заполнение начнется со строки H33.

Автор - Glass4217
Дата добавления - 22.05.2019 в 06:21
RAN Дата: Среда, 22.05.2019, 10:29 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
И почему мне всегда казалось, что фраза
Помогите разобраться с макросом.

предполагает, как минимум, наличие оного?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИ почему мне всегда казалось, что фраза
Помогите разобраться с макросом.

предполагает, как минимум, наличие оного?

Автор - RAN
Дата добавления - 22.05.2019 в 10:29
K-SerJC Дата: Среда, 22.05.2019, 13:51 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщениетак и решений по импорту из txt на этом форуме полно:
http://www.excelworld.ru/forum/10-11274-1
http://www.excelworld.ru/forum/10-12125-1
http://www.excelworld.ru/forum/10-35023-1
http://www.excelworld.ru/forum/10-39846-1
http://www.excelworld.ru/forum/10-41144-1

Автор - K-SerJC
Дата добавления - 22.05.2019 в 13:51
Glass4217 Дата: Четверг, 23.05.2019, 07:49 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
K-SerJC, ну вот я по ссылке нашел вот такой код:
[vba]
Код

Sub xx()
    With Application
        .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = False
        Open ActiveWorkbook.Path & "\8037208.txt" For Input As #1
        With GetObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
            .SetText Input$(LOF(1), 1)
            .PutInClipboard
        End With
        Close #1
        With [C5:F5]
            Range(.Cells, .End(xlDown)).ClearContents
            .Cells(1).PasteSpecial xlPasteAll
            .Copy
        End With
        .CutCopyMode = 0
        .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1
    End With
End Sub
[/vba]

Так там - не то.

Там - табулированный текст и вставляется он сразу в несколько столбцов.
А у меня - нужно только в один столбец.

Потом еще этот код - не учитывает наличие единиц в столбце F.
К сообщению приложен файл: 6625847.xls (42.0 Kb) · 8037208.txt (0.2 Kb)
 
Ответить
СообщениеK-SerJC, ну вот я по ссылке нашел вот такой код:
[vba]
Код

Sub xx()
    With Application
        .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = False
        Open ActiveWorkbook.Path & "\8037208.txt" For Input As #1
        With GetObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
            .SetText Input$(LOF(1), 1)
            .PutInClipboard
        End With
        Close #1
        With [C5:F5]
            Range(.Cells, .End(xlDown)).ClearContents
            .Cells(1).PasteSpecial xlPasteAll
            .Copy
        End With
        .CutCopyMode = 0
        .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1
    End With
End Sub
[/vba]

Так там - не то.

Там - табулированный текст и вставляется он сразу в несколько столбцов.
А у меня - нужно только в один столбец.

Потом еще этот код - не учитывает наличие единиц в столбце F.

Автор - Glass4217
Дата добавления - 23.05.2019 в 07:49
K-SerJC Дата: Четверг, 23.05.2019, 09:06 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
Доброго дня!
ну так вы писали:
Помогите разобраться с макросом

а как вам помочь, если вы ничего не делаете?

так и написали бы что ни будь в стиле: "сделайте пожалуйста мне макрос который сделает то что мне нужно."
Там - табулированный текст и вставляется он сразу в несколько столбцов.

так попробуйте свой файл поставить и путь(имя) к нему указать
в этой строке:
[vba]
Код
Open ActiveWorkbook.Path & "\8037208.txt" For Input As #1
[/vba]
ActiveWorkbook.Path - это директория где лежит ваш файл эксель

а вот тут задаются ячейки после которых сначала удаляются данные с листа, а затем вставляются данные из txt
[vba]
Код
With [C5:F5]
[/vba]


Благими намерениями выстелена дорога в АД.
 
Ответить
СообщениеДоброго дня!
ну так вы писали:
Помогите разобраться с макросом

а как вам помочь, если вы ничего не делаете?

так и написали бы что ни будь в стиле: "сделайте пожалуйста мне макрос который сделает то что мне нужно."
Там - табулированный текст и вставляется он сразу в несколько столбцов.

так попробуйте свой файл поставить и путь(имя) к нему указать
в этой строке:
[vba]
Код
Open ActiveWorkbook.Path & "\8037208.txt" For Input As #1
[/vba]
ActiveWorkbook.Path - это директория где лежит ваш файл эксель

а вот тут задаются ячейки после которых сначала удаляются данные с листа, а затем вставляются данные из txt
[vba]
Код
With [C5:F5]
[/vba]

Автор - K-SerJC
Дата добавления - 23.05.2019 в 09:06
Glass4217 Дата: Четверг, 23.05.2019, 10:04 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
K-SerJC, спасибо за ответ.
Теперь макрос выглядит так:
[vba]
Код

Sub xx()
    With Application
        .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = False
        Open ActiveWorkbook.Path & "\Текстовый файл.txt" For Input As #1
        With GetObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
            .SetText Input$(LOF(1), 1)
            .PutInClipboard
        End With
        Close #1
        With [H7]
            Range(.Cells, .End(xlDown)).ClearContents
            .Cells(1).PasteSpecial xlPasteAll
            .Copy
        End With
        .CutCopyMode = 0
        .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1
    End With
End Sub
[/vba]

Но этот файл - перед вставкой - удаляет предыдущее содержимое столбца H, хотя этого делать не нужно.
Я спрашивал - как осуществить вставку текста - в столбец H, начиная с последней соответствующей ячейки (где нет 1 столбца F).
То есть это должна сейчас быть - ячейка H33.

Каково ваше мнение - как реализовать эту операцию ?
К сообщению приложен файл: 6625847-2.xls (43.5 Kb) · 9023967.txt (0.2 Kb)
 
Ответить
СообщениеK-SerJC, спасибо за ответ.
Теперь макрос выглядит так:
[vba]
Код

Sub xx()
    With Application
        .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = False
        Open ActiveWorkbook.Path & "\Текстовый файл.txt" For Input As #1
        With GetObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
            .SetText Input$(LOF(1), 1)
            .PutInClipboard
        End With
        Close #1
        With [H7]
            Range(.Cells, .End(xlDown)).ClearContents
            .Cells(1).PasteSpecial xlPasteAll
            .Copy
        End With
        .CutCopyMode = 0
        .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1
    End With
End Sub
[/vba]

Но этот файл - перед вставкой - удаляет предыдущее содержимое столбца H, хотя этого делать не нужно.
Я спрашивал - как осуществить вставку текста - в столбец H, начиная с последней соответствующей ячейки (где нет 1 столбца F).
То есть это должна сейчас быть - ячейка H33.

Каково ваше мнение - как реализовать эту операцию ?

Автор - Glass4217
Дата добавления - 23.05.2019 в 10:04
K-SerJC Дата: Четверг, 23.05.2019, 11:15 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
То есть это должна сейчас быть - ячейка H33.

Каково ваше мнение - как реализовать эту операцию ?

ну вот так попробуйте заменить
[vba]
Код
With [H7]
[/vba]
на
[vba]
Код
with Cells(Cells(Rows.Count, 8).End(xlUp).Row,8)
[/vba]


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщение
То есть это должна сейчас быть - ячейка H33.

Каково ваше мнение - как реализовать эту операцию ?

ну вот так попробуйте заменить
[vba]
Код
With [H7]
[/vba]
на
[vba]
Код
with Cells(Cells(Rows.Count, 8).End(xlUp).Row,8)
[/vba]

Автор - K-SerJC
Дата добавления - 23.05.2019 в 11:15
RAN Дата: Четверг, 23.05.2019, 11:27 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub мяу()
    Open ActiveWorkbook.Path & "\8037208.txt" For Input As #1
    spl = Split(Input$(LOF(1), 1), vbNewLine)
    Cells(Rows.Count, "F").End(xlUp).Offset(1, 2).Resize(UBound(spl)) = spl
    Close #1
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub мяу()
    Open ActiveWorkbook.Path & "\8037208.txt" For Input As #1
    spl = Split(Input$(LOF(1), 1), vbNewLine)
    Cells(Rows.Count, "F").End(xlUp).Offset(1, 2).Resize(UBound(spl)) = spl
    Close #1
End Sub
[/vba]

Автор - RAN
Дата добавления - 23.05.2019 в 11:27
Glass4217 Дата: Четверг, 23.05.2019, 11:41 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
RAN, K-SerJC, теперь все работает. Спасибо за ответы в теме.
 
Ответить
СообщениеRAN, K-SerJC, теперь все работает. Спасибо за ответы в теме.

Автор - Glass4217
Дата добавления - 23.05.2019 в 11:41
  • Страница 1 из 1
  • 1
Поиск:

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