Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перенос табличек из Worda в Excel / 21 сообщений из 21, страница 1 из 1
17.07.2008, 11:51
    #35436141
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
Дорогие товарищи, нужна помощь! Перкрасно понимаю, что тема 40 раз разжёвана, но у меня всё равно мозгов не хватает.
Задача состоит в том, чтобы по кнопке открывался нужный мне файл Word (c пом. Application.GetOpenFilename) и оттуда в Excel копировалась одна единственная существующая в нём таблица с балансом банка, а потом закрывался word без сохранения.
Заранее огромное спасибо!
...
Рейтинг: 0 / 0
17.07.2008, 11:53
    #35436146
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
забыл сказать: прога должна запускаться из Excel
...
Рейтинг: 0 / 0
17.07.2008, 12:27
    #35436294
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
> Автор: PlanB
> забыл сказать: прога должна запускаться из Excel

Макрос запиши, и подставляй по записанному пути одинаковые doc-файлы

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17.07.2008, 12:32
    #35436322
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
...так это понятно, как копировать таблицу Word в Excel я не понимаю))
...
Рейтинг: 0 / 0
17.07.2008, 13:04
    #35436504
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
> Автор: PlanB
> ...так это понятно, как копировать таблицу Word в Excel я не
> понимаю))

А для этого нужно записать макрос в ворде ;)))

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17.07.2008, 14:41
    #35436892
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
Я правильно понял: нельзя из Excel открыть word и из него что-то скопировать?
Т.е, когда ББ банков присылают в Word-e, а тебе надо в Excel их переместить автоматически, это невозможно без того, чтобы в word не прописать макрос в каждом файле???
...
Рейтинг: 0 / 0
17.07.2008, 15:09
    #35437001
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
> Автор: PlanB
> Я правильно понял: нельзя из Excel открыть word и из него что-то
> скопировать?
> Т.е, когда ББ банков присылают в Word-e, а тебе надо в Excel их
> переместить автоматически, это невозможно без того, чтобы в word не
> прописать макрос в каждом файле???

Нет! Ты понял неправильно! Из программы в которую встроен VBA(заметь, я не
ограничиваюсь только Екселем и Вордом ;)) ) можно сделать ОЧЧЧЕЕЕНЬ много
чего. И твоя задача очень проста и делается за 5 минут. Только ты этого не
понимаешь :(

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub CopyFromWord()
Dim wdApp As Object
Dim wdDoc As Object
Set wdApp = CreateObject("Word.Application")
Set wdDoc = wdApp.Documents.Open(Filename:="""c:\Название валюты.doc""", 
ConfirmConversions:= _
        False, ReadOnly:=False, AddToRecentFiles:=False, 
PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", XMLTransform:="", Format:= 0 ) 
'wdOpenFormatAuto,
wdApp.Selection.WholeStory
wdApp.Selection.Copy
ActiveSheet.Paste
wdDoc.Close
wdApp.Quit
Set wdDoc = Nothing
Set wdApp = Nothing
End Sub


--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17.07.2008, 16:00
    #35437194
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
Да, неплохо! Спасиоб. Правда я не допёр что значат прописанные свойства OPEN кроме Filename, так что их все поудалял (с ними, кстати, не пашет). Мож подскажешь, какое из них позволяет не менять формат при вставке.
...
Рейтинг: 0 / 0
17.07.2008, 16:09
    #35437233
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
> Автор: PlanB
> Да, неплохо! Спасиоб. Правда я не допёр что значат прописанные
> свойства OPEN кроме Filename, так что их все поудалял (с ними, кстати, не
> пашет). Мож подскажешь, какое из них позволяет не менять формат при
> вставке.

Это не свойства, а именованные параметры и получил я их просто записал
макрос в ворде в котором открыл файл, выделил все, скопировал, остановил
запись. Потом скопировал код и перенес в ексель, где дописал получение
объекта ворда и потом закрытие ворда.

открой редактор ВБА в ворде, напиши там Documents.Open поставь курсор на
Open и нажми F1 ;)))


--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17.07.2008, 16:21
    #35437269
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
У меня 32 градуса в офисе, поэтому туговато соображаю.
Почему не работает?

Name$ = Application.GetOpenFilename

Set wdDoc = wdApp.Documents.Open(Name)
или
Set wdDoc = wdApp.Documents.Open(Filename:=Name)
...
Рейтинг: 0 / 0
17.07.2008, 16:24
    #35437286
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
АААА, всё работает работает. Не знаю, откуда ты всё это знаешь, но спасибо.
...
Рейтинг: 0 / 0
17.07.2008, 16:34
    #35437326
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
> Автор: PlanB
> Не знаю, откуда ты всё это знаешь.

"и опыт, сын ошибок трудных" (с) А. С. Пушкин
+ чтение справки, иногда вместо сна ;)))

Удачи
--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17.07.2008, 16:43
    #35437354
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
Ты программист что-ли профессиональный? Мена VBA никто не учил))) Я просто фин. аналитик, решил по нерезам балансы прогой в сводную таблицу формировать, чтобы динамику смотреть. А милый АВТОКРАЗБАНК присылает отчётность в worde. Вот и заморочки отсюда...
...
Рейтинг: 0 / 0
17.07.2008, 16:53
    #35437400
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
> Автор: PlanB
> Ты программист что-ли профессиональный? Мена VBA никто не учил)))

Ну насчет профессионального не знаю, т.к самоучка, но последние 6 лет(из 10
прошедших после института) работаю программистом, так что можно сказать и
профессиональный.
А по специальности - инженер литейного производства

> Я просто фин. аналитик, решил по нерезам балансы прогой в сводную
> таблицу формировать, чтобы динамику смотреть.

Все когда-то начинали :)

> А милый АВТОКРАЗБАНК присылает отчётность в worde. Вот и заморочки
> отсюда...


О и у нас в городе есть такой банк :)

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17.07.2008, 16:54
    #35437404
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
У меня последний вопрос: твой код открывает файл word или из закрытого берёт инфу? Уж очень он быстро всё делает. Когда я из excel в excel делал примерно так:

Private Sub BVN_NES()
Name$ = "имя б"
nnn = ActiveWorkbook.Name
Naz = Application.GetOpenFilename
If Naz = False Then
End
End If
Workbooks.OpenText Filename:=Naz
nnn1 = ActiveWorkbook.Name
ActiveWorkbook.Sheets(1).Columns("A:E").Copy
Workbooks(nnn).Activate

Sheets.Add
With ActiveSheet
.Name = "1"
.Paste
.Columns("a:e").ColumnWidth = 11
End With
Application.CutCopyMode = False
Workbooks(nnn1).Close (False)
Call Group2
Call Import1(Name)
Application.DisplayAlerts = False
Worksheets("1").Delete
Application.DisplayAlerts = True
End Sub

вот в этом случае прога тупит секунд по 10 (это с процедурами Call не связано, они небольшие)
может можно не открывая файл всё это сделать?
...
Рейтинг: 0 / 0
17.07.2008, 16:55
    #35437410
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
О и у нас в городе есть такой банк :)

Это ж Украина, вообще нерез. у него нет филиалов в РФ
...
Рейтинг: 0 / 0
17.07.2008, 17:15
    #35437503
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
> Автор: PlanB
> У меня последний вопрос: твой код открывает файл word или из
> закрытого берёт инфу? Уж очень он быстро всё делает.

Открывает. Но не показывает.

> Когда я из excel в excel делал примерно так:
>
> Private Sub BVN_NES()
> Name$ = "имя б"
> nnn = ActiveWorkbook.Name
> Naz = Application.GetOpenFilename
> If Naz = False Then
> End
> End If
> Workbooks.OpenText Filename:=Naz
> nnn1 = ActiveWorkbook.Name
> ActiveWorkbook.Sheets(1).Columns("A:E").Copy
> Workbooks(nnn).Activate
>
> Sheets.Add
> With ActiveSheet
> .Name = "1"
> .Paste
> .Columns("a:e").ColumnWidth = 11
> End With
> Application.CutCopyMode = False
> Workbooks(nnn1).Close (False)
> Call Group2
> Call Import1(Name)
> Application.DisplayAlerts = False
> Worksheets("1").Delete
> Application.DisplayAlerts = True
> End Sub
>
> вот в этом случае прога тупит секунд по 10 (это с процедурами Call не
> связано, они небольшие)

У меня тупит просто сам вызов Application.GetOpenFilename.
Если возможно, стараюсь обходится без диалогов выбора файла
Ну и ещё может тупить операция копирования/вставки, т.к. вставляеш с
форматами и это может занимать продолжительное время на больших объемах
Попробуй вставлять специальной вставкой, только значения, если подходит

> может можно не открывая файл всё это сделать?
Вот делал кому-то пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub Макрос7()
'
' Макрос7 Макрос
' Макрос записан 07.02.2008
'

'

Dim oConn As New ADODB.Connection
Dim oRS As New ADODB.Recordset
Dim arrStr() As String
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
           "Data Source=C:\Книга1.xls;" & _
           "Extended Properties=""Excel 8.0;"""
oRS.Open "SELECT distinct Results.a FROM `C:\Книга1`.Лист1 Results", oConn, 
adOpenStatic
'arrStr = Split(oRS.GetString(, , , vbCrLf), vbCrLf)
range("A1").CopyFromRecordset oRS
oConn.Close
Set oRS = Nothing
Set oConn = Nothing

End Sub
Здесь в Tools -> Referens нужно поставить птичку напротив Microsoft ActiveX
Data Object 2.???

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17.07.2008, 17:20
    #35437526
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
Не, спасибо, конечно, но я НИ ОДНОЙ строчки не понял! (а, нет, пользовался ф-ей Split) А в целом - это слишком сложно(((((
...
Рейтинг: 0 / 0
17.07.2008, 17:30
    #35437561
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
И напоследок: можно заставить твой код копировать только таблицу. Там текст тоже бывает
...
Рейтинг: 0 / 0
17.07.2008, 17:43
    #35437615
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
> Автор: PlanB
> И напоследок: можно заставить твой код копировать только таблицу. Там
> текст тоже бывает
:))
вместо строки:
wdApp.Selection.WholeStory
ставиш:
wdDoc.Tables(1).Select



--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17.07.2008, 17:57
    #35437664
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос табличек из Worda в Excel
Правда помог, спасибо!!!!!!!!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перенос табличек из Worda в Excel / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]