Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2022, 00:59   #1
kwike
Новичок
Джуниор
 
Регистрация: 14.11.2018
Сообщений: 3
По умолчанию сохранить каждую ячейку (столбца) в отдельный файл тхт

Помогите плиз.
Обыскал весь интернет, но не нашёл.
Хотя вру нашёл, но там второй человек сразу же задал якобы похожий вопрос, и ответа на первоначальный вопрос так никто и не дал(

Необходим макрос, чтоб сохранялось в файл (txt), содержимое каждой ячейки из столбца, при этом название файла из соседнего столбца (если содержимое ячеек:"название файла" и "содержимое файла" = пусто, то не сохранять в файл)
И желательно, чтоб макрос срабатывал при сохранении основного Эксель.

Пример Эксель:
"Имя файла1"; "содержимое файла1"
.......
"Имя файла100"; "содержимое файла100"
kwike вне форума Ответить с цитированием
Старый 24.12.2022, 18:31   #2
kwike
Новичок
Джуниор
 
Регистрация: 14.11.2018
Сообщений: 3
По умолчанию

это мёртвый форум?( хотя бы "послали бы"
kwike вне форума Ответить с цитированием
Старый 24.12.2022, 20:49   #3
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

kwike, для Экселистов есть отдельный форум и отдельный котёл в аду.
Как бы вам мягко намекнуть, что сама постановка задачи заставляет здравомыслящих людей держаться от вас подальше.
Valick вне форума Ответить с цитированием
Старый 24.12.2022, 21:43   #4
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

внизу страницы похожие темы например

Открыть файл, разделить ячейку на 1000, сохранить файл, закрыть файл. Как?
https://www.programmersforum.ru/showthread.php?t=185703

но проверять макросы конечно же не буду

гораздо проще перевести таблицу в текстовый файл
и перерабатывать даже через устаревшие языки программирования
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 24.12.2022 в 21:46.
сфинкс вне форума Ответить с цитированием
Старый 25.12.2022, 00:24   #5
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Сохранить как csv и в cmd выполнить bat файл следующего содержания
Код:
rem На вход необходимо передать имя csv файла в качестве первого параметра
set IDX=1
for /F "usebackq" %%I in (`type "%~f1"`) DO call :drop "%~n1" %IDX% "%%~I"
set IDX=
exit /b 0

:drop
if %2 LSS 10 (
  echo %~3 > %~1_000%2.txt
) else (
  if %2 LSS 100 (
    echo %~3 > %~1_00%2.txt
  ) else (
    if %2 LSS 1000 (
      echo %~3 > %~1_0%2.txt
    ) else (
      echo %~3 > %~1_%2.txt
    )
  )
)
set /a IDX=1+%2
Но не проверял. Напечатал в браузере. Опечатки исправите.
macomics вне форума Ответить с цитированием
Старый 25.12.2022, 20:54   #6
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

Код:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Cancel = True
    Строка = 1
    ПоследняяСтрока = 7
    Do
        C = Cells(Строка, 1)
        V = Cells(Строка, 2)
        If (C <> "") And (V <> "") Then
             Open "T:\" & C & ".TXT" For Output As #1
             Print #1, V
             Close #1
        End If
        Строка = Строка + 1
    Loop Until Строка > ПоследняяСтрока
End Sub
Изображения
Тип файла: jpg screenshot.23.jpg (17.6 Кб, 37 просмотров)
Тип файла: jpg screenshot.24.jpg (33.5 Кб, 35 просмотров)
jillitil вне форума Ответить с цитированием
Старый 13.01.2023, 07:50   #7
kwike
Новичок
Джуниор
 
Регистрация: 14.11.2018
Сообщений: 3
По умолчанию

Код:
Function EncodeUTF8noBOM(ByVal txt As String) As String
    For i = 1 To Len(txt)
        l = Mid(txt, i, 1)
        Select Case AscW(l)
            Case Is > 4095: t = Chr(AscW(l) \ 64 \ 64 + 224) & Chr(AscW(l) \ 64) & Chr(8 * 16 + AscW(l) Mod 64)
            Case Is > 127: t = Chr(AscW(l) \ 64 + 192) & Chr(8 * 16 + AscW(l) Mod 64)
            Case Else: t = l
        End Select
        EncodeUTF8noBOM = EncodeUTF8noBOM & t
    Next
End Function
Sub макрос сохранения в файл()
' сочетание клавиш: Ctrl+q
    Cancel = True
    Cell = 1 ' первая строка
    LastCell = 99 ' последняя проверяемая строка на наличие текста
    Do
        C = Cells(Cell, 1) ' Вместо 1 вставить номер столбца, где хранится название файлов
        V = Cells(Cell, 2) ' Вместо 2 вставить номер столбца, где хранится содержимое файлов
        V = EncodeUTF8noBOM(V)
        If (C <> "") And (V <> "") Then
             Open "C:\Users\PC\Desktop" & C & ".TXT" For Output As #1
             Print #1, V
             Close #1
        End If
        Cell = Cell + 1
    Loop Until Cell > LastCell
End Sub

Последний раз редактировалось kwike; 13.01.2023 в 08:00. Причина: ошибка в кириллице была
kwike вне форума Ответить с цитированием
Старый 13.01.2023, 08:21   #8
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Цитата:
Сообщение от kwike Посмотреть сообщение
Open "C:\Users\PC\Desktop" & C & ".TXT" For Output As #1
надо заменять недопустимые символы в имени, например на подчеркивание
Код:
c1=c
c1=replace(c1,":","_")
c1=replace(c1,"\","_")
''''может и еще какие-то, особенно знаки препинания
Open "C:\Users\PC\Desktop" & C1 & ".TXT" For Output As #1
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранить в отдельный файл Dianadepuatie Visual C++ 3 29.11.2017 06:56
Макрос - вывести каждую страницу в отдельный файл Word и присвоить имя из текста olgavekhter Microsoft Office Word 1 16.06.2016 15:24
Открыть файл, разделить ячейку на 1000, сохранить файл, закрыть файл. Как? Ник Харди Microsoft Office Excel 7 30.01.2012 18:47
Сохранить базу в отдельный .mdb файл GenniY БД в Delphi 0 23.05.2010 20:23