|
Перенос данных из Word в Excel
|
|
|
|
semen12 |
Суббота, 11 Октября 2008, 15:40
|
Участник
Профиль
Группа: Участник
Сообщений: 11
Регистрация: 11.10.2008
Пользователь №: 31291
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Как прочитать отчет который сделанный в Word при помощи закладок в Bookmark макросом в Excel. Необходимо припомоши макроса переносить данные из Word в Excel. Как можно это сделать, возможно необходимо подключить библиотеки в Excel?
|
|
|
|
|
pashulka |
Воскресенье, 12 Октября 2008, 11:23
|
Участник
Профиль
Группа: Участник
Сообщений: 216
Регистрация: 13.07.2003
Пользователь №: 5551
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Необходимости в подключении библиотек, в Вашем случае, нет, ибо - Код Private Sub Test() iFileName$ = "C:\Мои документы\PriceCD.doc" 'Укажите имя документа, содержащего закладки If Dir(iFileName$) = "" Then MsgBox "Указанного документа, видимо, не существует", , "" Exit Sub End If With CreateObject("Word.Application") '.Visible = True With .Documents.Open(FileName:=iFileName$) Dim iBookmark As Object For Each iBookmark In .Bookmarks MsgBox iBookmark.Range.Text, , "" Next '.Close saveChanges:=0 'wdDoNotSaveChanges End With .Quit saveChanges:=0 'wdDoNotSaveChanges End With End Sub Сообщение отредактировал pashulka - Воскресенье, 12 Октября 2008, 11:26
|
|
|
|
|
semen12 |
Понедельник, 13 Октября 2008, 23:22
|
Участник
Профиль
Группа: Участник
Сообщений: 11
Регистрация: 11.10.2008
Пользователь №: 31291
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Я поместил этот код в Excel выдает ошибку ненаходит обьект или библиотеку? Мне необходимо из закладки Word (Bookmark) текст который по умолчанию, после генирирования отчета, Что-бы файл Excel прочитал текст поумолчанию своим макросом и записывал в определенную ячейку определённой закладки. Сколько я непробывал неполуч. , в основном ошибка что неподдер функц. или метод в Excel VBA.? Хотя библиотеку ворд я подключил.!? Если есть у кого нибудь рабочий пример взаимодействия Excel с Word плиз помогите!?
|
|
|
|
|
pashulka |
Вторник, 14 Октября 2008, 17:40
|
Участник
Профиль
Группа: Участник
Сообщений: 216
Регистрация: 13.07.2003
Пользователь №: 5551
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Наивно полагать, что потратив энное количество времени на написании кода, я вдруг почему-то поленился протестировать своё творение, и ещё более неуместным будет предположение, что после якобы неудачного тестирования мне в голову пришла мысль не о исправлении ошибок, а о публикации нерабочего кода.
Что же касается возникших ошибок, то в случае изменения исходника, нужно приводить пример всего макроса (желательно уточнив, при этом, в каком модуле он находится), указать строку, на которой возникла ошибка и указать номер возникшей ошибки.
|
|
|
|
|
semen12 |
Среда, 15 Октября 2008, 20:31
|
Участник
Профиль
Группа: Участник
Сообщений: 11
Регистрация: 11.10.2008
Пользователь №: 31291
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Я поместил в Excel в редактор VBA ошибка на второйстрочке Compile error: Canot find project or library на iFileName$
Private Sub Test() iFileName$ = "C:\1---.doc"
|
|
|
|
|
pashulka |
Среда, 15 Октября 2008, 21:46
|
Участник
Профиль
Группа: Участник
Сообщений: 216
Регистрация: 13.07.2003
Пользователь №: 5551
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Ежели самое простое присвоение вызывает подобную ошибку, то для начала рекомендую протестировать сей пример.
|
|
|
|
|
semen12 |
Четверг, 16 Октября 2008, 16:32
|
Участник
Профиль
Группа: Участник
Сообщений: 11
Регистрация: 11.10.2008
Пользователь №: 31291
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
В этом примере ворд интегрировался в Еxcel.(посмотрю ещё дома) попробую сформулировать У меня стоит задача есть вордовсий файл ---.doc вот ссылка http://www.pochta.ru/download.php/?file=:q...rd&user=semen12необходимо значение текста "закладки" например "VAL1_1" что бы макрос который находиться в файле 1.xls читал текст который находиться в этой закладке и записывал в 1.xls лист1 например ячейку A1 T.e. из Еxcel работать с обектами Word. Как Связать обьекты Workbooks("").Worksheets("1").Range("A1") c вордовскими Word.Application.Bookmark("VAL1_1")?
|
|
|
|
|
pashulka |
Четверг, 16 Октября 2008, 21:38
|
Участник
Профиль
Группа: Участник
Сообщений: 216
Регистрация: 13.07.2003
Пользователь №: 5551
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Функция CreateObject создаёт и возвращает ссылку на Word.Application и это позволяет нам получить доступ к свойствам и методам этого объекта, а стало быть : Код Private Sub Test() iFileName$ = "C:\Мои документы\PriceCD.doc" 'Укажите имя документа, содержащего закладки If Dir(iFileName$) = "" Then MsgBox "Указанного документа, видимо, не существует", , "" Exit Sub End If With CreateObject("Word.Application") '.Visible = True With .Documents.Open(FileName:=iFileName$) ThisWorkbook.Worksheets("1").Range("A1").Value = .Bookmarks("VAL1_1").Range.Text
'Рабочий лист с указанным именем должен существовать '(вместо имени можно использовать индекс[номер] листа или 'кодовое, иначе называемое, программное имя рабочего листа)
'Ячейка+лист не должны быть защищены
'А в документа должна наличествовать закладка "VAL1_1" '(для проверки наличия нужной закладки можно использовать 'метод Exists об'екта Bookmarks)
'.Close saveChanges:=0 'wdDoNotSaveChanges End With .Quit saveChanges:=0 'wdDoNotSaveChanges End With End Sub
|
|
|
|
|
semen12 |
Вторник, 28 Октября 2008, 10:24
|
Участник
Профиль
Группа: Участник
Сообщений: 11
Регистрация: 11.10.2008
Пользователь №: 31291
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
А если документ Word ---.doc уже открыт? Как обратиться уже к открытому документу ? Я пробывал у меня не выходит обращяться к активному документу или создать обьект который уже активний или просто к Document!
|
|
|
|
|
semen12 |
Вторник, 28 Октября 2008, 14:31
|
Участник
Профиль
Группа: Участник
Сообщений: 11
Регистрация: 11.10.2008
Пользователь №: 31291
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
With Documents.Application.ActiveDocument заменил строчку With .Documents.Open(Filename:=iFileName$) заработал
|
|
|
|
|
pashulka |
Вторник, 28 Октября 2008, 22:07
|
Участник
Профиль
Группа: Участник
Сообщений: 216
Регистрация: 13.07.2003
Пользователь №: 5551
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Если Вы сами открыли и не закрыли этот документ, а затем Вам потребовалось получить к нему доступ, то в таком случае, можно просто использовать об'ектную переменную()
|
|
|
|
|
semen12 |
Пятница, 21 Ноября 2008, 14:51
|
Участник
Профиль
Группа: Участник
Сообщений: 11
Регистрация: 11.10.2008
Пользователь №: 31291
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
После копирования и редактирования файла возникает или после переноса на др. комп. и переименования файла ошибка: № 4248 или 424 Run-time error; Данная команда недоступна т.к. неоткрыт ни один документ или объект недоступен. на строчке: With Documents.Application.ActiveDocument Хотя вордовкий файл открыт Bookmarks необходимая существует! И при этом полностью одинакой документ Excel c таким же макросом работает и видит и читает ворд?!!! С чем это может быть связано. При том что отличие их в том, что они редактировались на разных компьютерах
|
|
|
|
|
pashulka |
Пятница, 21 Ноября 2008, 22:51
|
Участник
Профиль
Группа: Участник
Сообщений: 216
Регистрация: 13.07.2003
Пользователь №: 5551
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Скажите, а где Вы видели в моём примере инструкцию With Documents.Application.ActiveDocument ...
|
|
|
|
|
semen12 |
Пятница, 21 Ноября 2008, 23:24
|
Участник
Профиль
Группа: Участник
Сообщений: 11
Регистрация: 11.10.2008
Пользователь №: 31291
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
там выше по тексту было мною укакзанно. Хорошо, тогда каким лутше методом воспользоваться, для чтения открытого вордовского файла без привязки к имени файла и его расположения на диске.Как любой активный док можно прочитатать, если там есть необходимые Bookmarks.
|
|
|
|
|
pashulka |
Суббота, 22 Ноября 2008, 2:36
|
Участник
Профиль
Группа: Участник
Сообщений: 216
Регистрация: 13.07.2003
Пользователь №: 5551
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Я ведь не зря задал свой вопрос, ибо есть принципиальная разница между работой с файлом, который мы сами и открыли и неким абстрактным документом, который может быть и не открыт. Что же касается решения, то см.ниже (MsgBox's используются только для наглядности) Код Private Sub GetActiveDocument() On Error GoTo ErrHandler
Dim iWordApp As Object ' Set iWordApp = GetObject(, "Word.Application") If iWordApp.Documents > 0 Then With iWordApp.ActiveDocument If .Bookmarks.Count = 0 Then MsgBox "В открытом документе нет закладок", , "" Else MsgBox "В открытом документе есть закладки", , "" End If End With: Exit Sub End If ErrHandler: Select Case Err.Number Case 429: MsgBox "Нет открытых документов", , "" 'Case ... Case Else: MsgBox "Непредвиденная ошибка", , "" End Select End Sub
|
|
|
|
|
semen12 |
Вторник, 02 Декабря 2008, 11:46
|
Участник
Профиль
Группа: Участник
Сообщений: 11
Регистрация: 11.10.2008
Пользователь №: 31291
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
У меня возник такой вопросик; Можно ли даныые из Excel перенести в Word? без использования Bookmarks, что бы была конкретная привязка к определённой ячейки таблицы Word? Можно ли ячейкам таблицы Word присвоить другие номена (не Cells(1,4), т.е. переименовать объекты), конкретное имя для обращеня макроса который находиться в Excel?
|
|
|
|
|
pashulka |
Воскресенье, 07 Декабря 2008, 22:22
|
Участник
Профиль
Группа: Участник
Сообщений: 216
Регистрация: 13.07.2003
Пользователь №: 5551
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Увы, лично я не нашёл возможности присваивать отдельным ячейкам таблицы Word - имя ()
|
|
|
|
|
|
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
|
0 Пользователей:
|
|
© Copyright by WinCity.Ru 2001 - 2008 | Обратная связьУслуги веб-хостинга предоставлены компанией MTW.RU
|
|