Метод объекта не обнаружен saveas word
Права есть. Если просто открыть екселем, изменить и сохранить как - все прокатывает, а через 1С сохранить не получается.
Создается файлик, но ячейки пустые. Формат вроде нужный - .xls
если это делается на сервере, то права надо смотреть у пользователя под кем работает служба сервера приложений
При этом методе Метод объекта не обнаружен (SaveAs) ТекущийДокЕксель.SaveAs(КаталогДанных + "" + ТекИмя);
Ну кароч ты книгу должен сохранять. Покажи что присваиваешь текущийдокэксель
До меня делалось: Код функции, которая возвращает ТекущийДок
<Форма.Форма.Форма>: Ошибка при вызове метода контекста (SaveAs) ТекущийДокЕксель.ActiveWorkbook.SaveAs(КаталогДанных + "" + ТекИмя); по причине: Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверноФорма.Форма.Форма>
я в показал какая ошибка выпадает при ТекущийДокЕксель.ActiveWorkbook
Если файл существует попробуй опять save. Для saveas можно вторым параметром задать формат файла еще
Попробовал передать формат <Форма.Форма.Форма>: Ошибка при вызове метода контекста (SaveAs) ТекущийДокЕксель.ActiveWorkbook.SaveAs(КаталогДанных + "" + ТекИмя, ".xls"); по причине: Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверноФорма.Форма.Форма>
Создал. Ура! Осталось протестировать откроет ли 2003 офис
Тогда ладно. Файлики создаются. Есть ещё вопрос. Обработина, сделанная по образу и подобию
Отдельный момент. Я может ошибаюсь: по коду если все удачно сохранилось, то объект excel не удаляется.
Ошибка такая: Ошибка при вызове метода контекста (Windows) по причине: Произошла исключительная ситуация (0x8002000b)
Ну если я все правильно понимаю, то 10 раз запустите свой код, не выходя из 1с, и в процессах будет висеть 10 excel-ей.
У меня просто открывается ексель как приложение, а окна документа не видно. Серый экран.
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Сохраняет указанный документ с новым именем или форматом. Некоторые аргументы этого метода соответствуют параметрам в диалоговом окне "Сохранить как" (меню "файл").
Параметры
Необязательный объект. Имя документа. Значение по умолчанию — текущая папка и имя файла. Если документ никогда не сохранялся, используется имя по умолчанию (например, Doc1. doc). Если документ с указанным именем уже существует, документ перезаписывается без запроса пользователя.
Необязательный объект. Формат, в котором сохранен документ. Может быть любой WdSaveFormat константой. Чтобы сохранить документ в другом формате, укажите соответствующее значение для SaveFormat свойства FileConverter объекта.
Необязательный объект. Значение true , чтобы заблокировать документ для примечаний. Значение по умолчанию - false.
Необязательный объект. Строка пароля для открытия документа. (См. примечания ниже).
Необязательный объект. Значение true , чтобы добавить документ в список недавно использовавшихся файлов в меню файл. По умолчанию используется значение True.
Необязательный объект. Строка пароля для сохранения изменений в документе. (См. примечания ниже).
Необязательный объект. Значение true , чтобы при открытии документа в Microsoft Word предлагалось состояние "только чтение". Значение по умолчанию - false.
Необязательный объект. Значение true для сохранения шрифтов TrueType вместе с документом. Если этот параметр опущен, EmbedTrueTypeFonts аргумент принимает значение EmbedTrueTypeFonts Свойства.
Необязательный объект. Если графика была импортирована с другой платформы (например, Macintosh), значение true , чтобы сохранить только версию Windows импортированной графики.
Необязательный объект. Значение true , чтобы сохранить данные, введенные пользователем в форме, в виде записи данных.
Необязательный объект. Если в документе есть вложенная почта, значение true , чтобы сохранить документ как аоце букву (средство рассылки сохраняется).
Необязательный параметр MsoEncoding . Кодовая страница или набор знаков, которые необходимо использовать для документов, сохраненных в виде кодированных текстовых файлов. По умолчанию используется системная кодовая страница.
Необязательный объект. Если документ сохраняется в виде текстового файла, значение true используется для вставки разрывов строк в конце каждой строки текста.
Необязательный объект. Если документ сохраняется в виде текстового файла, значение true позволяет Word заменять некоторые символы похожим на похожий текст. Например, отображение знака авторского права как (c). Значение по умолчанию - false.
Необязательный объект. Способ, с помощью которого Word помечает разрывы строк и абзацев в документах, сохраненных в виде текстовых файлов. Может быть любой WdLineEndingType константой.
Необязательный объект. Значение true добавляет управляющие символы в выходной файл для сохранения макета текста в исходном документе с двунаправленным письмом.
Комментарии
Избегайте использования в приложениях жестко заданных паролей. Если в процедуре требуется пароль, запросите пароль у пользователя, сохраните его в переменной, а затем используйте эту переменную в коде.
Я пытаюсь сохранить книгу excel (с поддержкой макросов) в виде csv-файла через этот макрос, перезаписывая старый (ниже у меня было изменение имени папки и листа, но это, похоже, не проблема!):
I погуглил его, и, по-видимому, это происходит много с людьми, и некоторые из решений, которые я пробовал, были:
- указание того, что каталог является строкой
- избегайте любого специального символа в имени файла или папки (см. здесь)
- копировать вставьте лист как значение перед сохранением его как .csv (см. здесь)
- указание FileFormat с помощью .номер кода csv (см. здесь)
- отключение/повторное включение некоторых предупреждений
- добавление других полей в ActiveWorkbook.Сохранить как строку, касающиеся паролей, создания резервных копий etcetc
тем не менее, он может работать правильно до 50-60 раз подряд, а затем в какой-то момент снова терпеть неудачу в строке.
любое предложение или вещи, которые я мог бы посмотреть, чтобы решить эту проблему (кроме остановки использования VBA / Excel для этой задачи, которая произойдет в ближайшее время, но я не могу для теперь.)
заранее спасибо за ваше время.
EDIT: решено благодаря предложению Degustaf. Я внес только два изменения в предложенный Degustaf код:
- ThisWorkbook.Листы вместо CurrentWorkbook.Листы
- FileFormat:=6 вместо FileFormat:=xlCSV (по-видимому, более надежный для разных версий excel)
Я вообще считаю что ActiveWorkbook проблема в этих случаях. Под этим я подразумеваю, что каким-то образом у вас нет этой книги (или любой другой), и Excel не знает, что делать. К сожалению, с copy ничего не возвращает (скопированный рабочий лист был бы хорошим), это стандартный способ подхода к этой проблеме.
Итак, мы можем подойти к этому, как мы можем скопировать этот лист в новую книгу, и получить ссылку на эту книгу. Что мы можем сделать, так это создать новая книга, а затем скопируйте лист:
или есть еще лучший подход в такой ситуации: WorkSheet поддерживает SaveAs метод. Нет необходимости копировать.
я предупрежу вас, чтобы сохранить книгу в исходное имя afterwarsd, если она остается открытой, но у вас уже есть это в вашем коде.
Это год назад, но я добавлю кое-что для будущих читателей
вы не найдете много документации в справке Excel для ошибки времени выполнения 1004, поскольку Microsoft не считает ее ошибкой Excel.
факт что это прерывистый недостаток, и он исправлен путем сохранять с полным путем и имя файла говорит мне, что ваш макрос может пытаться сохранить.xlsb-файл в каталог autorecover после автоматического восстановления файла.
кроме того, вы, возможно, отредактировали путь к файлу или имя файла самостоятельно.
вы можете проверить путь и имя файла с:- Функцию MsgBox Файл Thisworkbook.Полное имя
C:\Users\Mike\AppData\Roaming\Microsoft\Excel\DIARY (Версия 1).xlxb
Если таким образом, решение (как указано выше другими), чтобы сохранить ваш файл на правильный путь и имя файла. Это можно сделать с помощью VBA или вручную.
Теперь у меня есть привычка вручную сохранять файл с его правильным путем и именем файла как само собой разумеющееся после любого действия автосохранения, поскольку это занимает секунды, и я нахожу его быстрее (если это не ежедневное явление). Таким образом, макросы не столкнутся с этой ошибкой, которую вы запустите. Помните, что в то время как моя привычка вручную экономить.файлы xlxb для .файлы xlsm сразу после восстановления не помогут новичку, которому вы даете лист.
примечание по гиперссылкам
после этой ошибки: если у вас есть гиперссылки на листе, созданных с Ctrl + k по всей вероятности, у вас будет что-то вроде "AppData\Roaming\Microsoft\", "\AppData\Roaming\", "../../ AppData / роуминг/ "или". \Мои документы\Мои документы\ " в нескольких гиперссылках после восстановления файла. Вы можете избежать их путем прикрепление гиперссылок к текстовому полю или их генерация с помощью функции гиперссылки.
идентификация и ремонт их немного сложнее
сначала проверьте гиперссылки и определите ошибочные строки и правильную строку для каждой ошибки. Со временем я нашел несколько.
Excel не предоставляет средства в меню "перейти к специальному" для поиска гиперссылок, созданных с помощью Ctrl + k .
вы можете автоматизировать идентификацию ошибочных гиперссылок в вспомогательном столбце, скажем, столбец Z и используя формулу
где Link2Text является UDF
функция Link2Text (rng как диапазон) как строка - Не отключайтесь. "Находит гиперссылки, содержащие "роуминг" в столбце Z.
мой VBA для исправления ошибок выглядит следующим образом
' Выберите правильный лист Листы ("дневник").Выберите
Я также рекомендую вам привыкнуть делать регулярные резервные копии и не полагаться только на автосохранение. Если это не удастся, у вас ничего нет с момента последней полной резервной копии.
в то время как лист является хрупкой резервной копии часто, как каждый час или после любого значительного импорта новых данных.
следующие ярлыки будут резервное копирование рабочего листа в секундах: Ctrl + O , [выделите имя файла], Ctrl + C , Ctrl + V , [ X]. Регулярные резервные копии позволяют сразу перейти к последней резервной копии без необходимости восстановления из файла резервной копии прошлой ночи, особенно если вам нужно сделать запрос другого человека, чтобы сделать это.
Читайте также: