Перевести часть кода макроса из Excel в ООо

Автор Tatiana!, 26 апреля 2011, 09:23

0 Пользователи и 1 гость просматривают эту тему.

Tatiana!

Добрый день!
очень очень нужна помощь...
как перевести часть кода макроса из екселя в опен офис?

    Windows("ATP.xls").Activate
sPath = ActiveWorkbook.Path + "\"
'MsgBox (sPath + "OUT\Pach512.dbf")
    Sheets("В предв_бал").Select
    Sheets("В предв_бал").Copy
   
    ActiveWorkbook.SaveAs FileName:=sPath + "OUT\Pach512.dbf", FileFormat:= _
        xlDBF3, CreateBackup:=False
    ActiveWindow.Close SaveChanges:=False
    Sheets("Авизо3").Select
    Range("A1").Select
     

как сохранить файл опен офис (.ods) в dbf файл? кодом!

JohnSUN

Здравствуй, Tatiana! И добро пожаловать на форум.
1. Скопировать в Pach512.db нужно только один лист "В предв_бал" из книги "ATP.xls"? Имена всегда одни и те же, только путь к файлу меняется?
2. Простая запись макроса не сработала? У меня получилось (после минимума исправлений) такое:

sub SaveAsDBF(PathAndName As String)
dim document   as object
dim dispatcher as object
dim args1(2) as new com.sun.star.beans.PropertyValue

  document   = ThisComponent.CurrentController.Frame
  dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
  args1(0).Name = "URL"
  args1(0).Value = PathAndName
  args1(1).Name = "FilterName"
  args1(1).Value = "dBase"
  args1(2).Name = "FilterOptions"
  args1(2).Value = "34"
On Error Resume Next
  dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
end sub

Само собой, это еще не весь макрос, а только процедура сохранения текущего (активного) листа текущей книги. Нужно еще среди всех открытых книг выбрать "ATP.xls", в ней активировать лист "В предв_бал", "сконструировать" строку PathAndName... Но работать должно  ;)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне