Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / перевод VBA в VFP 1-а строка / 25 сообщений из 36, страница 1 из 2
13.02.2008, 11:42
    #35129352
Vitalь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Как это перевести, помогите пожалуйста

Файл шаблон *.xlt создан в Excel 97
открываю
objExcel.WorkBooks.Open(cFileNameIn)
теперь этот шаблон нужно сохранить в другом файле, в формате Excel97
код на VBA
*//ActiveWorkbook.SaveAs FileName:="C:\1111111111.xls", FileFormat:= _
*// xlExcel9795, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
*// False, CreateBackup:=False
помогите перевести строку в VFP9SP2
...
Рейтинг: 0 / 0
13.02.2008, 11:55
    #35129403
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
"Vitalь" <nospam@sql.ru>; сообщил/сообщила в новостях следующее:
news:5282437@sql.ru...
> Автор: Vitalь
> Как это перевести, помогите пожалуйста
>
> Файл шаблон *.xlt создан в Excel 97
> открываю
> objExcel.WorkBooks.Open(cFileNameIn)
> теперь этот шаблон нужно сохранить в другом файле, в формате Excel97
> код на VBA
> *//ActiveWorkbook.SaveAs FileName:="C:\1111111111.xls", FileFormat:=
> _
> *// xlExcel9795, Password:="", WriteResPassword:="",
> ReadOnlyRecommended:= _
> *// False, CreateBackup:=False
> помогите перевести строку в VFP9SP2

xlExcel9795 = 43 - это числовая константа - можно использовать число, можно
через define определить

и не ActiveWorkbook. , а loXLSDoc. - так будет понятней.

xlExcel9795 = 43
objExcel=CREATEOBJECT("Excel.Application")

loXLSDoc = objExcel.WorkBooks.Open(GETFILE())

loXLSDoc.SaveAs("C:\1111111111.xls",xlExcel9795,"","",.f.,.f.)

objExcel.Quit


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.02.2008, 12:04
    #35129436
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Galyamov Rinat

"Vitalь" <nospam@sql.ru>; сообщил/сообщила в новостях следующее:
news:5282437@sql.ru...
> Автор: Vitalь
> Как это перевести, помогите пожалуйста
>
> Файл шаблон *.xlt создан в Excel 97
> открываю
> objExcel.WorkBooks.Open(cFileNameIn)
> теперь этот шаблон нужно сохранить в другом файле, в формате Excel97
> код на VBA
> *//ActiveWorkbook.SaveAs FileName:="C:\1111111111.xls", FileFormat:=
> _
> *// xlExcel9795, Password:="", WriteResPassword:="",
> ReadOnlyRecommended:= _
> *// False, CreateBackup:=False
> помогите перевести строку в VFP9SP2

xlExcel9795 = 43 - это числовая константа - можно использовать число, можно
через define определить

и не ActiveWorkbook. , а loXLSDoc. - так будет понятней.

xlExcel9795 = 43
objExcel=CREATEOBJECT("Excel.Application")

loXLSDoc = objExcel.WorkBooks.Open(GETFILE())

loXLSDoc.SaveAs("C:\1111111111.xls",xlExcel9795,"","",.f.,.f.)

objExcel.Quit

Ренат, а вы пробовали сами все это проделать?
Я имею в виду команду loXLSDoc.SaveAs("C:\1111111111.xls",xlExcel9795,"","",.f.,.f.) ?
С уважением, Алексей
...
Рейтинг: 0 / 0
13.02.2008, 12:12
    #35129466
Vitalь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Вот мой код ...
#DEFINE xlExcel9795 43
cFileNameIn = 'D:\DRP\ZExpert\Other\Shablon\ZayaonEx.xlt'
cFileNameOut = 'c:\test.xls'
objExcel = GETOBJECT("", "Excel.Application")
IF VARTYPE(objExcel) <> "O" OR ISNULL(objExcel)
RETURN .F.
ELSE
objExcel.WorkBooks.Open(cFileNameIn)
*// VBA >>>
*//ActiveWorkbook.SaveAs FileName:="C:\1111111111.xls", FileFormat:= _
*// xlExcel9795, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
*// False, CreateBackup:=False
*// VBA <<<
*// objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795,'','',False,False) -- не работает
*// objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795,'','',.F.,.F.) -- не работает
*// objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795) - не работает
objExcel.DisplayAlerts = .F.
objExcel.Visible = .F.
objExcel.Save
* эксель становится видимым на экране
objExcel.Visible = .T.
RELEASE objExcel
ENDIF
...
Рейтинг: 0 / 0
13.02.2008, 12:13
    #35129472
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
VitalьВот мой код ...
#DEFINE xlExcel9795 43
cFileNameIn = 'D:\DRP\ZExpert\Other\Shablon\ZayaonEx.xlt'
cFileNameOut = 'c:\test.xls'
objExcel = GETOBJECT("", "Excel.Application")
IF VARTYPE(objExcel) <> "O" OR ISNULL(objExcel)
RETURN .F.
ELSE
objExcel.WorkBooks.Open(cFileNameIn)
*// VBA >>>
*//ActiveWorkbook.SaveAs FileName:="C:\1111111111.xls", FileFormat:= _
*// xlExcel9795, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
*// False, CreateBackup:=False
*// VBA <<<
*// objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795,'','',False,False) -- не работает
*// objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795,'','',.F.,.F.) -- не работает
*// objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795) - не работает
objExcel.DisplayAlerts = .F.
objExcel.Visible = .F.
objExcel.Save
* эксель становится видимым на экране
objExcel.Visible = .T.
RELEASE objExcel
ENDIF
А у вас часом OFFICE не 2007 ?
С уважением, Алексей
...
Рейтинг: 0 / 0
13.02.2008, 12:17
    #35129487
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
> Ренат, а вы пробовали сами все это проделать?
Ринат.

> Я имею в виду команду
> loXLSDoc.SaveAs("C:\1111111111.xls",xlExcel9795,"","",.f.,.f.) ?
Обязательно! Весь этот кусок целиком.

Это все? или у вас еще какой вопрос?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.02.2008, 12:20
    #35129502
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Galyamov Rinat
> Ренат, а вы пробовали сами все это проделать?
Ринат.

> Я имею в виду команду
> loXLSDoc.SaveAs("C:\1111111111.xls",xlExcel9795,"","",.f.,.f.) ?
Обязательно! Весь этот кусок целиком.

Это все? или у вас еще какой вопрос?
И у вас это работает на Office 2007 ?
Больше вопросов нет.
...
Рейтинг: 0 / 0
13.02.2008, 12:23
    #35129517
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Вот этот кусок отработал на УРА.

Действительно, может с офисом чего связано?





#DEFINE xlExcel9795 43

cFileNameIn = 'd:\__Паспортизация\_паспорт1.XLS'

cFileNameOut = 'c:\test.xls'

objExcel = GETOBJECT("", "Excel.Application")

IF VARTYPE(objExcel) <> "O" OR ISNULL(objExcel)

RETURN .F.

ELSE

objExcel.WorkBooks.Open(cFileNameIn)

objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795,"","",.F.,.F.)

*//
objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795,'','',.F.,.F.) -- не
работает

*// objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795) - не работает

objExcel.DisplayAlerts = .F.

objExcel.Visible = .F.

objExcel.Save

* эксель становится видимым на экране

objExcel.Visible = .T.

RELEASE objExcel

ENDIF


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.02.2008, 12:25
    #35129529
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Galyamov Rinat
Вот этот кусок отработал на УРА.

Действительно, может с офисом чего связано?





#DEFINE xlExcel9795 43

cFileNameIn = 'd:\__Паспортизация\_паспорт1.XLS'

cFileNameOut = 'c:\test.xls'

objExcel = GETOBJECT("", "Excel.Application")

IF VARTYPE(objExcel) <> "O" OR ISNULL(objExcel)

RETURN .F.

ELSE

objExcel.WorkBooks.Open(cFileNameIn)

objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795,"","",.F.,.F.)

*//
objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795,'','',.F.,.F.) -- не
работает

*// objExcel.ActiveWorkbook.SaveAs(cFileNameOut,xlExcel9795) - не работает

objExcel.DisplayAlerts = .F.

objExcel.Visible = .F.

objExcel.Save

* эксель становится видимым на экране

objExcel.Visible = .T.

RELEASE objExcel

ENDIF




Да на ура, на ура. У всех проходит, проходил...
А вы его попробуйте на Excel 2007 прогнать и скажите, какой у вас результат.
С уважением, Алексей
...
Рейтинг: 0 / 0
13.02.2008, 12:25
    #35129530
Vitalь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
стоит на машине
вначале был установлен Excel 2007
затем Excel 97
...
Рейтинг: 0 / 0
13.02.2008, 12:27
    #35129539
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
И еще раз говорю, что лучше использовать прямую ссылку на книгу, которую ты
получаешь при открытии файла:

loXLSDoc = objExcel.WorkBooks.Open(GETFILE())

loXLSDoc - вот эта ссылка на твой объект, которая в твоем примере совпадает
с objExcel.ActiveWorkbook., но это не всегда так.
Например тебе надо будет тусовать книги, из одной копировать в другую. Тогда
ты со своим "ActiveWorkbook" напаришсься так, что тебе никто не позовидует.


> loXLSDoc.SaveAs("C:\1111111111.xls",xlExcel9795,"","",.f.,.f.)


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.02.2008, 12:30
    #35129552
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
> Да на ура, на ура. У всех проходит, проходил...
> А вы его попробуйте на Excel 2007 прогнать и скажите, какой у вас
> результат.

Нету под рукой. И пока не горю желанием на него переползать.
Такое ощущение, что ты меня упрекаешь в том, что на остальных офисах это
работает.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.02.2008, 12:31
    #35129557
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
> вначале был установлен Excel 2007
> затем Excel 97

А ты уверен, что константа xlExcel9795 была уже определена в 97 офисе???


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.02.2008, 12:36
    #35129586
Vitalь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
да уверен, взята из файла XL97Cons.h
...
Рейтинг: 0 / 0
13.02.2008, 12:47
    #35129634
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Перечитал твой вопрос.

>Файл шаблон *.xlt создан в Excel 97 открываю
>objExcel.WorkBooks.Open(cFileNameIn)
>теперь этот шаблон нужно сохранить в другом файле, в формате Excel97 код на
>VBA

Я правильно понял. что тебе по сути надо просто его скопировать некую
шаблонную форму и заполнить?

Чтобы не было таких заморочек с версией офиса - создай просто xls (руками) и
его уже копируй и сохраняй (save, а не saveAs).


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.02.2008, 12:48
    #35129640
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Копировать можно даже средствами самого фокса.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.02.2008, 13:04
    #35129707
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
1. Excel 2007 не воспринимает константу xlExcel9795 для метода Workbook.SaveAs, хотя она и приведена в списке констант в хелпе. Баг это или что то другое - не знаю
2.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
LOCAL loXls as Excel.Application, loBook as Excel.Workbook, loSheet as Excel.Worksheet

#DEFINE xlExcel9795	 43 	
#DEFINE xlExcel8	 56 	

loXls = CREATEOBJECT("Excel.Application")
loXls.Visible = .T.
loBook = loXls.Workbooks.Add()
loSheet = loBook.Worksheets( 1 )
loSheet.Range("A1").Value = "Test"

loBook.SaveAs('C:\Tmp\Test.xls', xlExcel8)
3. Если используешь XLT шаблон, то не надо делать Workbooks.Open(), лучше Workbook.Add("TemplateFileName.xlt")
...
Рейтинг: 0 / 0
13.02.2008, 13:08
    #35129723
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Galyamov Rinat
Чтобы не было таких заморочек с версией офиса - создай просто xls (руками) и
его уже копируй и сохраняй (save, а не saveAs).


Posted via ActualForum NNTP Server 1.4
Чтоб не было заморочек, нужно просто правильно работать с шаблонами. (без обид)
...
Рейтинг: 0 / 0
13.02.2008, 13:10
    #35129735
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
AleksMed1. Excel 2007 не воспринимает константу xlExcel9795 для метода Workbook.SaveAs, хотя она и приведена в списке констант в хелпе. Баг это или что то другое - не знаю
2.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
LOCAL loXls as Excel.Application, loBook as Excel.Workbook, loSheet as Excel.Worksheet

#DEFINE xlExcel9795	 43 	
#DEFINE xlExcel8	 56 	

loXls = CREATEOBJECT("Excel.Application")
loXls.Visible = .T.
loBook = loXls.Workbooks.Add()
loSheet = loBook.Worksheets( 1 )
loSheet.Range("A1").Value = "Test"

loBook.SaveAs('C:\Tmp\Test.xls', xlExcel8)
3. Если используешь XLT шаблон, то не надо делать Workbooks.Open(), лучше Workbook.Add("TemplateFileName.xlt")
Точно... Спасибо. Получилось теперь SaveAs с более, чем один параметром и в Office 2007!
Я так понимаю, что он не константу не воспринимает, а не может сохранять в формате очень старого Excel.
С уважением, Алексей.
...
Рейтинг: 0 / 0
13.02.2008, 13:46
    #35129876
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Aleksey-K Я так понимаю, что он не константу не воспринимает, а не может сохранять в формате очень старого Excel.
Нет, сохранить с старом формате он может. Только у него теперь деление:
xlExcel8 - Excel 97-2003
xlExcel5 - Excel 5/95
Это видно если поиграться записью макроса при SaveAs.

Похоже что в хелпе не подчистили список констант или что то другое.
...
Рейтинг: 0 / 0
13.02.2008, 13:49
    #35129893
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
> Чтобы не было таких заморочек с версией офиса - создай просто
> xls (руками) и
> его уже копируй и сохраняй (save, а не saveAs).
>
> Чтоб не было заморочек, нужно просто правильно работать с шаблонами.
> (без обид)

Обид нет и быть не может.
Работать надо правильно всегда и со всем.


Только поясни, если правильно работать с шаблоном, как сохранить файл
созданый на его основе в документорованном формате 97 экселя?

Твоя цитата:
1. Excel 2007 не воспринимает константу xlExcel9795 для метода
Workbook.SaveAs, хотя она и приведена в списке констант в хелпе. Баг это или
что то другое - не знаю.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.02.2008, 13:51
    #35129903
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Galyamov Rinat
Только поясни, если правильно работать с шаблоном, как сохранить файл
созданый на его основе в документорованном формате 97 экселя?

Твоя цитата:
1. Excel 2007 не воспринимает константу xlExcel9795 для метода
Workbook.SaveAs, хотя она и приведена в списке констант в хелпе. Баг это или
что то другое - не знаю.

Posted via ActualForum NNTP Server 1.4

Так я уже показал в своём первом посте как это сделать :)
...
Рейтинг: 0 / 0
13.02.2008, 13:52
    #35129910
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
AleksMed Aleksey-K Я так понимаю, что он не константу не воспринимает, а не может сохранять в формате очень старого Excel.
Нет, сохранить с старом формате он может. Только у него теперь деление:
xlExcel8 - Excel 97-2003
xlExcel5 - Excel 5/95
Это видно если поиграться записью макроса при SaveAs.

Похоже что в хелпе не подчистили список констант или что то другое.
А что-то я при записи из самого Excel 2007 в списке форматов не вижу Excel 5/95 ?
Excel 97-2003 есть, а Excel 5/95 не вижу!
С уважением, Алексей
...
Рейтинг: 0 / 0
13.02.2008, 13:52
    #35129911
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
> Нет, сохранить с старом формате он может. Только у него теперь
> деление:
> xlExcel8 - Excel 97-2003
> xlExcel5 - Excel 5/95
> Это видно если поиграться записью макроса при SaveAs.
>
> Похоже что в хелпе не подчистили список констант или что то другое.

Странно, что заменили разделение и самое странное, что убрали декларирванные
имиже константы.
Наверное просто забыли добавить обработку некоторых констант.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.02.2008, 13:54
    #35129921
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод VBA в VFP 1-а строка
Aleksey-K AleksMed Aleksey-K Я так понимаю, что он не константу не воспринимает, а не может сохранять в формате очень старого Excel.
Нет, сохранить с старом формате он может. Только у него теперь деление:
xlExcel8 - Excel 97-2003
xlExcel5 - Excel 5/95
Это видно если поиграться записью макроса при SaveAs.

Похоже что в хелпе не подчистили список констант или что то другое.
А что-то я при записи из самого Excel 2007 в списке форматов не вижу Excel 5/95 ?
Excel 97-2003 есть, а Excel 5/95 не вижу!
С уважением, Алексей
Так как формат древний, то добраться до него можно через Save As - Other formats
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / перевод VBA в VFP 1-а строка / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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