Просматривают:
1 Анонимно
Обработка текста из Clipborda |
||
|
||
---|---|---|
Новичок
Присоединился:
2007/4/5 10:45 Откуда Московская обл.
Сообщений: 20
|
Уважаемые знатоки. Кто знает, тому это просто.
Задача такая. Из Excel копируется колонка с данными и вставляется в текстовый блок Corel для обработки. Как отделить текстовые блоки и обработать отдельно, которые отделяються переводом строки? Они так вставляються. Если существует более продвинутый способ передачи данных из Excel и их пакетной обработкой макросом в Кореле, буду еще более благодарен.
Опубликовано: 2008/1/16 17:50
|
|
|
Re: Обработка текста из Clipborda |
|
---|---|---|
Новичок
Присоединился:
2008/1/15 10:05 Откуда Челябинск
Сообщений: 20
|
Цитата:
Вот тут я не понял. Тебе нужно с помощью VBA скопировать столбец из Excel в CorelDraw? А в CorelDraw объект какой нужен - Artistic Text или Paragraph Text? Сколько нужно объектов в CorelDraw - один (полностью содержание столбца) или объектов должно быть столько же, сколько ячеек в столбце Excel? А если просто вставить, без VBA и по-быстрому, то, наверное, можно так: из Excel столбец перевести в текстовый файл, а из него вставить в CorelDraw. Если я правильно тебя понял.
Опубликовано: 2008/1/17 6:03
|
|
|
Re: Обработка текста из Clipborda |
|
---|---|---|
Новичок
Присоединился:
2007/4/5 10:45 Откуда Московская обл.
Сообщений: 20
|
Смысл такой. В Excel есть таблица с названиями файлов.
Пока я копирую по одной ячейки и вставляю в макрос Корела, т.е. в TextBoxt. Потом в Корел импортируеться заготовка с этим именем. Если выделить несколько столбцов и скопировав вставить в TextBoxt то названия файлов будут отделяться знаком перевода строки. Вот и нужно их отделить и по порядку обработать. Как выделить знак перевода строки?
Опубликовано: 2008/1/17 13:25
|
|
|
Re: Обработка текста из Clipborda |
|
---|---|---|
Новичок
Присоединился:
2007/4/5 10:45 Откуда Московская обл.
Сообщений: 20
|
Вопрос снят. Нашел кодировку и перекодировку в Хелпе. Разбор вставленного текста стал делом техники.
Опубликовано: 2008/1/17 16:27
|
|
|
Re: Обработка текста из Clipborda |
|
---|---|---|
Пользователь 2 уровня
Присоединился:
2007/2/7 10:40 Сообщений: 42
|
Скажите пожалуста, как сделать следующее:
есть текстовый файл aaa.txt Цитата: aaa1 bbb1 m1 Количество строк не известно... Пусть их будет j Я хочу организовать цикл по строкам от 1 до i for i=1 to j if mi=0 then a:=aaai b:=bbbi Как считывать значения по словам??? как я понял построчно считывается так Do While not EOF(f) Line Input #f, myFileString Loop а как теперь по словам считать?
Опубликовано: 2008/2/8 14:49
|
|
|
Re: Обработка текста из Clipborda |
|
---|---|---|
Новичок
Присоединился:
2008/1/15 10:05 Откуда Челябинск
Сообщений: 20
|
Цитата:
izrukvruki wrote: Скажите пожалуста, как сделать следующее: Задача для VB, для VBA решается так же. Сорри - нет времени расписывать подробно и думать над кодом, что нужно - доработай сам. Все работает, по крайней мере в Corel'овском VBA. Вместо "C:\Temp\1.txt" вставь, что нужно: Private Sub rtrt() Dim aaa_ As Integer Dim aaa_l As Integer Dim aa As String Dim bb As String Dim mm As String Dim k As Integer Open "C:\Temp\1.txt" For Input As #3 While Not (EOF(3)) Line Input #3, A$ aa = "" bb = "" mm = "" For k = 1 To 2 aaa_l = Len(A$) ' Здесь " " - разделитель. Если разделитель другой, то ставь нужный, напр. vbTab , "*" и пр. aaa_ = InStr(1, A$, " ", vbTextCompare) If aaa_ <> 0 And Trim(A$) <> "" Then If k = 1 Then aa = Left(A$, aaa_ - 1) A$ = Right(A$, aaa_l - aaa_) End If If k = 2 Then bb = Left(A$, aaa_ - 1) mm = Right(A$, aaa_l - aaa_) End If Else MsgBox "В строке нет разделителя, пропускаю", vbCritical, " Тесту - тест!" GoTo per_1 End If Next MsgBox "aa = " & aa & "; " & "bb = " & bb & "; " & "mm = " & mm per_1: Wend Close 3 End Sub
Опубликовано: 2008/2/8 15:52
|
|
|
Re: Обработка текста из Clipborda |
|
---|---|---|
Пользователь 2 уровня
Присоединился:
2007/2/7 10:40 Сообщений: 42
|
спасибо.
а как (с помощью какого инструмента?) можно на экран вывести этот файл построчно + плюс некие коментарии к этим строкам??? Я вот пробовал Listbox но не смог разобраться с его синтаксисом... Цитата: aaa1 bbb1 m1 - строка обработана
Опубликовано: 2008/2/11 11:35
|
|
|
|
Re: Обработка текста из Clipborda |
|
---|---|---|
Новичок
Присоединился:
2006/6/30 13:03 Сообщений: 10
|
как понял вопрос так и пишу:
Sub mReadFile() Dim tmp_str As String Dim str_val() As String Dim m_obj As Object Dim m_file As Object Dim ind_lv As Integer ind_lv = 1 'Для отображения содержимого с несклькими столбцами лучше воспользовать ListView 'lv - это имя ListView на форме lv.ColumnHeaders.Add 1, , "1", "70" lv.ColumnHeaders.Add 2, , "2", "70" lv.ColumnHeaders.Add 3, , "3", "70" lv.ColumnHeaders.Add 4, , "Коментарий", "70" ' Че-то у меня Open работать не хотела ' Поэтому я сделал через объект Set m_obj = CreateObject("Scripting.FileSystemObject") Set m_file = m_obj.OpenTextFile("C:\1.txt", 1, False) Do Until m_file.AtEndOfStream tmp_str = m_file.ReadLine If InStr(1, tmp_str, " ", vbTextCompare) > 1 And Trim(tmp_str) <> "" Then str_val = Split(tmp_str, " ") lv.ListItems.Add ind_lv, , str_val(0) lv.ListItems.Item(ind_lv).SubItems(1) = str_val(1) If UBound(str_val) >= 2 Then lv.ListItems.Item(ind_lv).SubItems(2) = str_val(2) End If ind_lv = ind_lv + 1 End If Loop m_file.close End Sub
Опубликовано: 2008/2/11 18:23
|
|
|
Re: Обработка текста из Clipborda |
|
---|---|---|
Пользователь 2 уровня
Присоединился:
2007/2/7 10:40 Сообщений: 42
|
Спасибо...
Подскажите еще такую штуку: Как закрыть все открытые документы/проекты (кстате а как в Кореле называются graphic???)
Опубликовано: 2008/2/12 15:45
|
|
|
Re: Обработка текста из Clipborda |
|
---|---|---|
Новичок
Присоединился:
2006/6/30 13:03 Сообщений: 10
|
Application.Documents.Item(Index).Close - ну и в цикле их там закрываешь )) (Application.Documents.count - кол-во документов)
Application.ActiveDocument.Close - активный документ закрыть
Опубликовано: 2008/2/12 17:07
|
|
|
Re: Обработка текста из Clipborda |
|
---|---|---|
Титан - модератор
Присоединился:
2006/4/8 19:42 Сообщений: 152
|
типсы:
1. в ВБА слово Application. можно не использовать т.к. этот объект используется по умолчанию, т.е. можно писать Documents.Count. 2. во всех объектных массивах слово .Item тоже не обязательно - оно используется по умолчанию, например: do while Documents.Count: Documents(1).Close: loop
Опубликовано: 2008/2/12 23:36
|
|