Страницы: 1
RSS
Вывод данных из Excel текстом
 
Добрый день.
Задача следующая. Имеется таблица в Excel, в которой довольно много данных и они постоянно  меняются. Требуется ежедневно выуживать, по некоторым условиям, требуемые данные, переводить это в текст и отправлять начальнику.
Я подумал, что с помощью макроса я могу прописать выуживание нужных данных. Далее по моей задумке нужно присвоить переменной все эти данные с помощью значков & и оператора Chr(10).
Но проблема как все эти данные вывести на экран, и чтобы можно было этот текст скопировать в буфер обмена. Знаю, к сожалению, только Inputbox и Msgbox, но первый не выводит большие тексты, а из второго невозможно скопировать в буфер.
Изменено: Валерик - 21.09.2016 14:16:48
 
Можно узнать: как данные попадают в исходную таблицу?
 
Там есть и столбцы с текстом и столбцы с числами, и столбцы с формулами, подсчитывающие некие данные
 
Валерик, Вы бы показали небольшой файл-пример - быстрее помощь получите. А то всё "на пальцах" пока...
 
Где-то там есть макрос, который по некоему алгоритму подставит данные в какой-то файл, который находится где-то во-о-он там
 
Цитата
vbandurko написал:
Требуется ежедневно выуживать
Для этого лучше подойдет удочка, спининг или сеть
Цитата
vbandurko написал:
Далее по моей задумке нужно присвоить переменной все эти данные с помощью значков & и оператора Chr(10)
Лучше с помощью крючков.
:D :D :D
 
Господа, я понимаю что на пальцах разговаривать довольно сложно, но в том и дело что имеется только задумка. Макроса ещё нет.
И у меня проблема не в сборе инфы, а в выводе её в каком-нибудь выскакивающем окне типа Msgbox, но чтобы из этого окна можно было скопировать текст в буфер обмена.
 
TSN, над Вами тоже все стебаются, когда Вы что-то не знаете и просите помощи?
 
Цитата
Валерик написал: Над Вами тоже все стебаются, когда Вы что-то не знаете и просите помощи?
Уважаемый я не стебаюсь. Ваш вопрос привел меня к такому ответу.
Если вопрос будет конкретней то ответ будет конкретней.
 
Цитата
Валерик написал:
выводе её в каком-нибудь выскакивающем окне типа Msgbox, но чтобы из этого окна можно было скопировать текст в буфер обмена.
MsgBox только для отображения. Из него Вы ничего не скопируете. Выводите на лист.
 
Цитата
Валерик написал: Макроса ещё нет.
А Вас и не просят написать макрос - просят показать, в каком виде исходные данные.
 
Код
Макрос
Открываю какую то книгу которую мне укажут в процедуре
Ищу ячейки которые соответствует каким то условиям которые мне укажут
Копирую текст из ячеек в буфер
Создаю файл ворд
Вставляю из буфера данные
Сохраняю ворд под таким то именем 
Конец процедуры я молодец
Лень двигатель прогресса, доказано!!!
 
Коммерческий файл я выложить не могу.
Ничего сверхъестественного в форме таблицы нет.
Приложил очень сильно упрощённый, но подходящий пример
Изменено: Валерик - 21.09.2016 15:21:57
 
Валерик, могу помочь есть похожий опыт.

Но нужно понять: как данные попадают в исходную таблицу?
 
Цитата
Sergey Nego написал:
как данные попадают в исходную таблицу?
Данные в "конечную таблицу" в основном попадают в виде ссылок на другие листы этой же книги. А туда вручную.
 
Цитата
Sergey Nego написал: Валерик, могу помочь есть похожий опыт.
Это намёк на уединение? Делитесь со всеми своим опытом!
 
Цитата
vbandurko написал:
Требуется ежедневно выуживать, по некоторым условиям, требуемые данные, переводить это в текст и отправлять начальнику.
ну так покажите эти самые условия; а также немного ниже - что нужно отправить начальнику.
Цитата
vbandurko написал:
переводить это в текст
это сохранить в текстовый файл?
 
Цитата
Михаил С. написал:
это сохранить в текстовый файл?
Нет я должен в виде текста отправить в теле письма.
Текст должен быть таким (утрировано):
«Самые высокие продажи за последний период у Иванова - 35 тонн
Самые низкие у Петрова - 18 тонн....» ну и т.д.
 
В буфер обмена можно сразу данные макросом и закинуть, а затем показать для контроля месижджбокс.
Код
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText переменная_с_текстом : .PutInClipboard
End With
Изменено: Hugo - 21.09.2016 15:47:11
 
Цитата
Валерик написал: в виде текста отправить в теле письма
Так сразу и отправляйте текст без ручных манипуляций с копипастом.
На форуме ищите темы по словам:
Outlook
CDO

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Код
Sub Упрощенный_пример()
  Dim sName As String, F, M
  Dim arr(), i As Long, x As Long
  With ThisWorkbook
      sName = .Sheets("Лист1").Range("B1").Value: arr = .Sheets("Лист1").Range("A2:N5").Value
  End With
  F = FreeFile
  Open ThisWorkbook.Path & "\Запись.txt" For Output As #F
  Print #F, Spc(10); sName
  Print #F, ""
  For i = 1 To UBound(arr, 1)
    Print #F, ""
      For x = 1 To UBound(arr, 2): Print #F, arr(i, x) & " ";: Next x
    Next i
  Close #F
End Sub

Простой пример записи данных с листа в текстовый файл без форматирования. При желании можно формировать отчеты в любые форматы файла (*.txt; *.doc; *.xls; *.csv; *.html) и так даллее.
Почитайте внимательно правила форума и подготовьте вопрос согласно требований, правила не даром написаны.
 
vbandurko, из-за Ваших неопределенностей тема превратилась в говорильню.
Название темы должно четко отражать смысл задачи.
Нужно сразу показывать файл-пример с расположением данных и с требуемым результатом, сразу описывать, что нужно получить.

Предложение: эту тему я удалю, Вы создадите новую с учетом замечаний, высказанных всеми участниками темы
Страницы: 1
Наверх