| 
    
        
     
     | 
    
    
  | 
сохранение Excel | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        lubja    
     17.08.11 
            ✎
    15:21 
 | 
         
        народ, подскажите, пжлста!
  
        есть екселевский файл с макросами. я в файл вношу изменения и хочу записать. вопрос в следующем: как сохранить и мои изменения, и макросы? код примерно следующий: Попытка ExcelПриложение = Новый COMObject("Excel.Application"); ExcelФайл = ExcelПриложение.Workbooks.Open(Файл); ExcelЛист = ExcelФайл.Sheets(1); Исключение Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат; КонецПопытки; //изменения этого файла ..... //здесь я перепробовала разные варианты ExcelПриложение.DisplayAlerts = Ложь; Попытка //ExcelЛист.SaveAs(Файл); //ExcelЛист.Save(); //ExcelФайл.SaveAs(Файл); //ExcelФайл.Save(); //ExcelПриложение.SaveAs(Файл); //ExcelПриложение.Save(); Исключение Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не удалось сохранить файл!"; Сообщение.Сообщить(); КонецПопытки;  | 
|||
| 
    1
    
        lubja    
     17.08.11 
            ✎
    15:23 
 | 
         
        + у меня получается, что либо файл с моими изменениями, но без макросов, либо с макросами, но без изменений...     
         | 
|||
| 
    2
    
        mzelensky    
     17.08.11 
            ✎
    15:25 
 | 
         
        (0) А что меняешь то???     
         | 
|||
| 
    3
    
        lubja    
     17.08.11 
            ✎
    15:26 
 | 
         
        (2) те варианты, которые я в попытке перепробовала возвращают (1)     
         | 
|||
| 
    4
    
        mzelensky    
     17.08.11 
            ✎
    15:28 
 | 
         
        Сделай для начала так:
  
        ДокументExcel = Новый COMОбъект("Excel.Application"); ДокументExcel.Visible = True; и погляди что у тебя вообще с этим файлом экселевским. Данные тобой внесенные корректны или нет  | 
|||
| 
    5
    
        mzelensky    
     17.08.11 
            ✎
    15:29 
 | 
         
        Вот это "ДокументExcel.Visible = True;" нужно в самом конце, когда уже все сделала - показываешь его на экране     
         | 
|||
| 
    6
    
        lubja    
     17.08.11 
            ✎
    15:31 
 | 
         
        (5) данные и макросы есть.     
         | 
|||
| 
    7
    
        mzelensky    
     17.08.11 
            ✎
    15:32 
 | 
         
        я так делал:
  
        Ех = Новый COMОбъект("Excel.Application"); // пытаемся открыть базу .... Книга = Ех.WorkBooks.Open(Элементыформы.ПолеИмениФайла.Значение); ... Книга.SaveAs(Элементыформы.ПолеИмениФайла.Значение); Книга.close(); Ех.WorkBooks.close(); Ех=неопределено;  | 
|||
| 
    8
    
        lubja    
     17.08.11 
            ✎
    15:36 
 | 
         
        (7) к сожалению, при попытке открыть этот файл после обработки выдает сообщение, что "действительный формат открываемого файла отличается от указываемого его расширением имени файла. перед открытием данного файла убедитесь, что он не поврежден и получен из надежного источника. открыть этот файл сейчас?". и если нажимаю да, то мои данные есть, макросов нет...     
         | 
|||
| 
    9
    
        mzelensky    
     17.08.11 
            ✎
    15:39 
 | 
         
        (8) ну эт ты уже макросы юзай....фишка именно в них, а не в способе сохранения экселя.
  
        макросы что делают вообще?  | 
|||
| 
    10
    
        lubja    
     17.08.11 
            ✎
    15:41 
 | 
         
        (9) а хз... файл прислал банк. сказали, чтобы именно в этот файл вносили изменения (типа, копирование не хляет). а что делают макросы - не моя забота))     
         | 
|||
| 
    11
    
        mzelensky    
     17.08.11 
            ✎
    15:48 
 | 
         
        (10) так может там тупо стоит защита от программного редактирования??? такое бывает!     
         | 
|||
| 
    12
    
        mzelensky    
     17.08.11 
            ✎
    15:49 
 | 
         
        попробуй программно просто добавить число в пустую ячейку экселя и сохранить.     
         | 
|||
| 
    13
    
        lubja    
     17.08.11 
            ✎
    15:52 
 | 
         
        (12) тут мысль одна появилась... как сохранить (программно) файл с типом именно xls? просто если я делаю в конце ДокументExcel.Visible = True и сохраняю руками файл именно в этом формате, то все вроде бы остается (и изменения, и макросы)     
         | 
|||
| 
    14
    
        mzelensky    
     17.08.11 
            ✎
    15:54 
 | 
         
        (13) ну я так полагаю:
  
        Книга.SaveAs("Имя файла.xls"); Иначе формат программно не пробовал выставлять  | 
|||
| 
    15
    
        mzelensky    
     17.08.11 
            ✎
    15:56 
 | 
         
        (13) гляди свойства "SaveAs"     
         | 
|||
| 
    16
    
        lubja    
     17.08.11 
            ✎
    16:02 
 | 
         
        спс. попробую.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |