Страницы: 1
RSS
Копирование листа .rtf на лист Excel
 
Есть данные в формате .rtf (выписка из "клиент-банка").  
Хотелось бы сократить время обработки данных, исключив ручное копирование и создание временных файлов.  
Как с помощью средств VBA из уже действующей программы выбрать файл .rtf и скопировать его на лист Excel для дальнейшей обработки.
 
Тут все зависит от вида и формата текста. Зашлите пример rtf файла и того, что из этого должно получиться на info(ррр-гав)planetaexcel.ru - посмотрим, что можно сделать.  
Скорее всего придется писать макрос для импорта и "причесывания" текса.
 
{quote}{login=Николай Павлов}{date=29.09.2007 03:00}{thema=Re: Копирование листа .rtf на лист Excel}{post}Тут все зависит от вида и формата текста. Зашлите пример rtf файла и того, что из этого должно получиться на info(ррр-гав)planetaexcel.ru - посмотрим, что можно сделать.  
Скорее всего придется писать макрос для импорта и "причесывания" текса.{/post}{/quote}  
 
Необходимо выбрать файл, выделить всё и скопировать его в лист Эксела. Он очень хорошо становится по ячейкам и дальше уже я его причесал макросом под свои потребности.  
Образец файла для обработки приатачиваю ...
 
Файл сразу не пустили пока не запихал его в архив
 
Нашел у себя в "закромах":  
 
Sub OpenRtfAndPasteToSheets()  
   Dim wd As Object  
   Dim ns As Worksheet  
     
   On Error Resume Next  
'запустим Ворд  
   Set wd = GetObject("", "Word.Application")  
   If Err.Number <> 0 Then  
       Err.Clear  
       Set wd = CreateObject("Word.Application")  
       If Err.Number <> 0 Then Exit Sub  
   End If  
     
   On Error GoTo BAD  
     
   Do  
'получим имя очередного файла  
       f = Application.GetOpenFilename("Файлы RTF, *.rtf,Все файлы, *.*")  
       If TypeName(f) = "Boolean" Then Exit Do 'если Отмена - выход  
'откроем выбранный очередной файл  
       Set wdd = wd.Documents.Open(f)  
'       wd.Visible = True  
'скопируем содержимое документа  
       t = wdd.Content.Copy  
'создадим лист для этого документа  
       Set ns = ActiveWorkbook.Worksheets.Add  
'вставим скопированное в новый лист  
       ns.Paste Destination:=ns.Cells(1, 1)  
'немного выравним вид  
       ns.Cells.WrapText = False  
       ns.Columns.AutoFit  
       ns.Rows.AutoFit  
       wdd.Close  
   Loop  
   wd.Quit  
   Set wd = Nothing  
   Exit Sub  
BAD:  
   MsgBox Err.Description  
   On Error Resume Next  
   wd.Quit  
   Set wd = Nothing  
   End  
End Sub  
 
Попробуйте. Думаю не должно составить проблем подкорректировать, если необходимо.
 
Попробуйте. Думаю не должно составить проблем подкорректировать, если необходимо.{/post}{/quote}  
 
Блеск !  
уже подредактировал ... жужжит только в путь !  
 
Еще раз убедился, что всё гениальное просто ...
 
Ребята помогите пожалуйста!!!!скопировал выписку бакнка в excel из последнего столбца извлек даты,и неполучается применить их в других формулах.Подскажите ,что нужно сделать
 
{quote}{login=avacha}{date=05.10.2010 02:42}{thema=выписка банка}{post}Ребята помогите пожалуйста!!!!скопировал выписку бакнка в excel из последнего столбца извлек даты,и неполучается применить их в других формулах.Подскажите ,что нужно сделать{/post}{/quote}  
 
1) зачем копировать этот макрос в ваш документ  
2) банковские данные не нужно размещать в интернет  
3) каким место и где вы извлекли дату  
 
В общем и целом ничего не ясно
 
Извините!Может так.
 
=DATEVALUE(MID(A4;(FIND("от";A4;1)+2);9))
 
Большое спасибо!
 
Я думаю, потом требуется от этой даты отнять/сложить дни.
 
Действительно,  
=--TRIM(MID(A3;(FIND("от";A3;1)+2);9))  
тоже работает... почему? А без TRIM - ошибка.
 
Точно, вполне достаточно и просто  
=MID(A3;(FIND("от";A3;1)+3);8)
Страницы: 1
Читают тему
Наверх