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

Вход

Регистрация

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

 

= Мир MS Excel/Эксопрт ячеек в TXT с разделителем табуляцией - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Эксопрт ячеек в TXT с разделителем табуляцией (Макросы/Sub)
Эксопрт ячеек в TXT с разделителем табуляцией
eferolgan Дата: Четверг, 10.07.2014, 17:16 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте! Помогите пожалуйста экспортировать в TXT.
суть вот в чем: имеется таблица в exel с товарами - 30 000 строк. ее надо привести в формат для импорта на платформу abcp: http://docs.abcp.ru/wiki/CatalogImport
Нашел у Вас на форуме скрипт

[vba]
Код
    Sub Export_Selection_Into_Txt()   ' экспорт выбранных диапазонов в текстовой файл
      Dim rArea As Range, i&, j&, X, Y, Z$, FileName
      For Each rArea In Intersect(ActiveSheet.UsedRange, ActiveWindow.RangeSelection).Areas
      X = rArea.Value ' диапазон —> в массив
      If Not IsArray(X) Then ' если это не массив, то значит одна ячейка
          Y = X
      Else
          ReDim Y(1 To UBound(X))
          For i = 1 To UBound(X)
              For j = 1 To UBound(X, 2) ' собираем значения по ячейкам строк с разделителями vbTab
                  Y(i) = Y(i) & IIf(j = 1, "", vbTab) & X(i, j)
              Next j
          Next i
          Y = Join(Y, vbCrLf) ' собираем строки с разделителем vbCrLf
      End If
      Z = Z & Y & vbCrLf & "-----------" & vbCrLf ' собираем области с разделителем vbCrLf & "-----------" & vbCrLf
      Next rArea
      'Debug.Print Z
      X = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".")) & "txt"
      FileName = Application.GetSaveAsFilename(InitialFileName:=X, FileFilter:="Text Files (*.txt), *.txt")
      If VarType(FileName) = vbBoolean Then Exit Sub       ' если нажали "Отмена", то FileName = False
      FileName = Left(FileName, InStrRev(FileName, ".")) & "txt"
      With CreateObject("Scripting.FileSystemObject")
      With .CreateTextFile(FileName, True): .Write Y: .Close: End With
      End With
      MsgBox "Выбранный диапазон экспортирован в файл" & vbCrLf & FileName, 64, "Экспорт выполнен успешно!"
End Sub
[/vba]

но пробелы между словами в ячейке скрипт разделяет табуляцией. как сделать что бы табуляцией разделялись только значения ячеек?
Или, возможно, есть более простой способ реализовать экспорт
 
Ответить
СообщениеЗдравствуйте! Помогите пожалуйста экспортировать в TXT.
суть вот в чем: имеется таблица в exel с товарами - 30 000 строк. ее надо привести в формат для импорта на платформу abcp: http://docs.abcp.ru/wiki/CatalogImport
Нашел у Вас на форуме скрипт

[vba]
Код
    Sub Export_Selection_Into_Txt()   ' экспорт выбранных диапазонов в текстовой файл
      Dim rArea As Range, i&, j&, X, Y, Z$, FileName
      For Each rArea In Intersect(ActiveSheet.UsedRange, ActiveWindow.RangeSelection).Areas
      X = rArea.Value ' диапазон —> в массив
      If Not IsArray(X) Then ' если это не массив, то значит одна ячейка
          Y = X
      Else
          ReDim Y(1 To UBound(X))
          For i = 1 To UBound(X)
              For j = 1 To UBound(X, 2) ' собираем значения по ячейкам строк с разделителями vbTab
                  Y(i) = Y(i) & IIf(j = 1, "", vbTab) & X(i, j)
              Next j
          Next i
          Y = Join(Y, vbCrLf) ' собираем строки с разделителем vbCrLf
      End If
      Z = Z & Y & vbCrLf & "-----------" & vbCrLf ' собираем области с разделителем vbCrLf & "-----------" & vbCrLf
      Next rArea
      'Debug.Print Z
      X = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".")) & "txt"
      FileName = Application.GetSaveAsFilename(InitialFileName:=X, FileFilter:="Text Files (*.txt), *.txt")
      If VarType(FileName) = vbBoolean Then Exit Sub       ' если нажали "Отмена", то FileName = False
      FileName = Left(FileName, InStrRev(FileName, ".")) & "txt"
      With CreateObject("Scripting.FileSystemObject")
      With .CreateTextFile(FileName, True): .Write Y: .Close: End With
      End With
      MsgBox "Выбранный диапазон экспортирован в файл" & vbCrLf & FileName, 64, "Экспорт выполнен успешно!"
End Sub
[/vba]

но пробелы между словами в ячейке скрипт разделяет табуляцией. как сделать что бы табуляцией разделялись только значения ячеек?
Или, возможно, есть более простой способ реализовать экспорт

Автор - eferolgan
Дата добавления - 10.07.2014 в 17:16
wild_pig Дата: Четверг, 10.07.2014, 19:18 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Так может надо было кусок своего файла показать?
 
Ответить
СообщениеТак может надо было кусок своего файла показать?

Автор - wild_pig
Дата добавления - 10.07.2014 в 19:18
eferolgan Дата: Пятница, 11.07.2014, 09:30 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Так может надо было кусок своего файла показать?

Простите, действительно.
К сообщению приложен файл: 6654552.xlsx (12.6 Kb)
 
Ответить
Сообщение
Так может надо было кусок своего файла показать?

Простите, действительно.

Автор - eferolgan
Дата добавления - 11.07.2014 в 09:30
wild_pig Дата: Пятница, 11.07.2014, 19:05 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Судя по коду tab добавляется после каждой ячейки в строке, а в конце перенос строки. И на примере макрос делает тоже самое. В чём подвох?
 
Ответить
СообщениеСудя по коду tab добавляется после каждой ячейки в строке, а в конце перенос строки. И на примере макрос делает тоже самое. В чём подвох?

Автор - wild_pig
Дата добавления - 11.07.2014 в 19:05
doober Дата: Пятница, 11.07.2014, 19:49 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Результат открыл в Notepad++.
Все на местах,все верно
К сообщению приложен файл: 1907405.jpg (49.0 Kb)


 
Ответить
СообщениеРезультат открыл в Notepad++.
Все на местах,все верно

Автор - doober
Дата добавления - 11.07.2014 в 19:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Эксопрт ячеек в TXT с разделителем табуляцией (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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