Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Word macro

370
01 февраля 2008 года
koval
443 / / 29.08.2005
Задачка передо мной встала не простая. Написать макрос для Ворда, который копирует таблицу из ворда в excel. А excel в свое время должен подсчитывать заначния столбца и сложить их.
Дело в том что с VB столкнулся первый раз в жизни. На С# реализацию макросов я не нашел так что теперь придется химичить. Подскажите в какую сторону копать про макросы.
На первый взгляд кажется, что нужно находить выделенную пользователем таблицу, как-то парсить значения столбцов забивать их в массивы, а потом создавать эксел документ и вбивать туда данные. С объектной моделью excel-я, как мне кажется ничего сложного нет, но вот сам макрос и парсинг таблицы... Нагуглить ничего толкового не получилось. Подскажите куда копать и может быть есть более простой способ реализации данного вопроса?
251
02 февраля 2008 года
SkyMаn
1.7K / / 31.07.2007
Так там парсить не надо ничего.
Просто создать объектную переменную той таблицы, и вставить новую таблицу в документ, пользуясь объектной переменной.
(Привел бы код, но именно сейчас не имею возможности проверить)
370
02 февраля 2008 года
koval
443 / / 29.08.2005
Цитата: SkyM@n

(Привел бы код, но именно сейчас не имею возможности проверить)



Было бы очень не плохо:) Если конечно будет возможность...

251
02 февраля 2008 года
SkyMаn
1.7K / / 31.07.2007
Цитата: koval
Было бы очень не плохо:)


Просто это... на линуксе нет MS Office...
Настраиваю виртальную машину специально для ВБА/Бейсика.

370
04 февраля 2008 года
koval
443 / / 29.08.2005
Вот поучилось вот такое чудо
Код:
Sub CopyTable2Excel()
    Dim oExcel As Excel.Application
    Dim oBook As Excel.Workbook
    Dim oSht As Excel.Worksheet
    Dim oTbl As table
    Dim oSelect As Selection
    Dim lCols As Long
    Dim lRows As Long
    Dim sValue As String
    Dim iLastRow As Integer
    Dim iLastColumn As Integer
    Dim varReturnMsgBox As Variant
   
   
    'check for selection of the table first
    If Not Selection.Information(wdWithInTable) Then
        varReturnMsgBox = MsgBox(vbOKOnly, vbApplicationModal, "Error", Nothing, "Please Select table to convert into excel") = vbOK
    Exit Sub
    End If
     
    'get reference to excel
    Set oExcel = CreateObject("Excel.Application")
    'create New book
    Set oBook = oExcel.Workbooks.Add
    'create New sheet
    Set oSht = oBook.Sheets.Add
    'make excel visible
    oExcel.Visible = True
   
    'get reference to first selected table
    Set oTbl = Selection.Tables(1)
    'and to selection
    Set oSelect = Selection
   
    lRows = 1
    With oTbl
    Do While lRows <= .Rows.Count
        lCols = 1
    Do While lCols <= .Columns.Count
        oTbl.Cell(lRows, lCols).Select
        sValue = Selection.Text
        'filter on chr(13) and more
        sValue = Left(sValue, InStr(sValue, Chr(13)) - 1)
        oSht.Cells(lRows, lCols).Value = sValue
        lCols = lCols + 1
        Loop
        lRows = lRows + 1
    Loop
    End With
   
    'restore original selection
    oSelect.Select
   
    'destroy all references and free memory
    Set oSelect = Nothing
    Set oTbl = Nothing
    Set oSht = Nothing
    Set oBook = Nothing
    Set oExcel = Nothing
End Sub


Работает вроде бы неплохо, хотя иногда возникает:
Цитата:
Run-time error 50290 Application-definded or object-definded error



Возник такой вопрос как поменять цвет всей талицы в Excel?

З.Ы. Пишу все это дело в стандартном вордовском Бэйсике.

251
04 февраля 2008 года
SkyMаn
1.7K / / 31.07.2007
koval,
http://forum.codenet.ru/announcement.php?f=13
См. в самом низу - там как раз для новичков в VBA. :)
370
05 февраля 2008 года
koval
443 / / 29.08.2005
Цитата: SkyM@n
koval,
http://forum.codenet.ru/announcement.php?f=13
См. в самом низу - там как раз для новичков в VBA. :)


Сплошное читерство:D
И в продолжение темы(да бы не создавать новую) как средствами VBA получить список всех системных шрифтов

251
05 февраля 2008 года
SkyMаn
1.7K / / 31.07.2007
в реестре можно глянуть, апишками. Можно тупо прочитать содержимое папки FONTS
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог