Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2009, 14:46   #1
Диагностик
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 62
По умолчанию Запись в Excel данных таблицы Word

Здравствуйте! Помогите, если это возможно в принципе.
Для получения данных термографических изображений используется Word, который автоматически создает таблицу с данными (см.вложение). Данные меняются со сменой изображения. Для обработки этих данных в Word'e создается таблицa Excel. Сейчас данные копируются вручную из Word в
Excel, где автоматически меняются техстовые данные на числовые, производятся расчеты и строятся графики.
Хотелось бы исключить ручною работу по переносу данных из Word'a в
Excel. Возможно ли такое? Спасибо!
Вложения
Тип файла: rar Пример.rar (82.2 Кб, 29 просмотров)
Диагностик вне форума Ответить с цитированием
Старый 02.04.2009, 16:18   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Задача решается и совсем не сложно.
Умный человек, который писал программу. сообразил, что нужно данные поместить в закладку
Внесу свой вклад. Эта функция из закладки в документе вытянет текст и преобразует его в строковый массив, каждый элемент которого, является искомым числом. Функции нужно передать документ, из которого взять закладку.
Код:
Public Function ConvertBookmarkToArray(oDoc As Word.Document) As Variant
  Dim sStr$, sArray
  On Error Resume Next
  sStr = Replace(oDoc.Bookmarks("OLE_LINK1").Range.Text, ChrW(11) & ChrW(11), ChrW(11))
  If Err.Number = 5941 Then
    Err.Clear
    MsgBox "В документе " & oDoc.Name & " нет закладки «OLE_LINK1»", 0 + 64, "Ошибка чтения"
    ConvertBookmarkToArray = Nothing
  ElseIf Err.Number <> 0 Then
    Err.Clear
    MsgBox "Ошибка выполнения.", 0 + 48, "Ошибка"
    ConvertBookmarkToArray = Nothing
  End If
  sStr = Replace(sStr, Chr(11), ", ")
  sArray = Split(sStr, ", ")
  ConvertBookmarkToArray = sArray
End Function
Остальное, я думаю, напишут специалисты по Excel. Я бы мог, да времени много уйдет
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 02.04.2009, 18:52   #3
Диагностик
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 62
По умолчанию

Большое спасибо, но для меня это сложно. Я знаю Excel на уровне грамотного пользователя, а с программированием вообще дел не имел.
Может кто-нибудь подскажет способ попроще.
Диагностик вне форума Ответить с цитированием
Старый 02.04.2009, 19:11   #4
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

А откуда беруться данные в Wird? Может стоит их сразу в Excel?
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 02.04.2009, 19:33   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вы не могли описать задание более подробно?
У нас нет особого желания по сто раз переписывать макросы...

Кстати, в прикреплённом Вами архиве целых 2 комплекта документ Word + книга Excel.
Из какого из файлов Word надо извлекать данные?

В каком виде Вам надо получить данные на листе Excel?

Вот пример извлечения данных из файла Таблица.doc:
(выполненный с использованием функции от viter.alex)

Код:
Sub Перенос_Данных_Из_Word_в_Excel()
    On Error Resume Next: Application.ScreenUpdating = False
    Dim wa As New Word.Application, wd As Word.Document
    fn = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "Таблица.doc")
    wa.Visible = False: Set wd = wa.Documents.Open(fn, , True)
    If wd Is Nothing Then MsgBox "error": wa.Quit False: Exit Sub
    arr = ConvertBookmarkToArray(wd)
    wd.Close False: wa.Quit False:
    [a3:z55] = arr    ' вставка на лист
End Sub
1) Извлекаете оба файла из вложения в одну папку
2) Открываете книгу excel
3) Нажимаете зелёную кнопку
Вложения
Тип файла: rar Пример.rar (14.9 Кб, 43 просмотров)
EducatedFool вне форума Ответить с цитированием
Старый 02.04.2009, 20:05   #6
Диагностик
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 62
По умолчанию

Цитата:
Сообщение от mchip Посмотреть сообщение
А откуда беруться данные в Wird? Может стоит их сразу в Excel?
Данные в таблицу Word транслируются из специальной программы обработки термограмм.
Диагностик вне форума Ответить с цитированием
Старый 02.04.2009, 20:17   #7
Диагностик
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 62
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Вы не могли описать задание более подробно?
У нас нет особого желания по сто раз переписывать макросы...

Кстати, в прикреплённом Вами архиве целых 2 комплекта документ Word + книга Excel.
Из какого из файлов Word надо извлекать данные?

В каком виде Вам надо получить данные на листе Excel?
На книгу Excel не обращайте внимания, затесалась случайно.
В документе Word термограмма (я оставил только рисунок из-за большого её веса) и связанная с ней таблица с параметрами. На этом-же
листе уже мной создана таблица Excel. Если Вы её откроете, то увидете, что сначала я перенес туда данные копированием, а затем преобразовал до числового вида при помощи текстовых функций. Задача в том, чтобы автоматизировать ручную процедуру. То есть получать выходные данные (результаты расчетов в Excel) не открывая таблицы.
Диагностик вне форума Ответить с цитированием
Старый 02.04.2009, 20:55   #8
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Надеюсь, что спецы Excel разберутся. Я ничего не понял, как там это сделано
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD prikolist Microsoft Office Word 6 21.11.2008 13:17
Перенос данных из Excel в Word Volch Microsoft Office Excel 6 19.10.2008 20:36
Перенос данных из MS Word в MS Excel ? Nickd5 Помощь студентам 2 28.06.2008 20:40