Файлы не открываются в Excel или «Файл не найден» происходит при открытии двойным
Симптомы
При нажатии кнопки ОК в сообщении об ошибке, сообщение появится. После повторного нажатия кнопки OKоткроется файл.
Причина
Это может происходить, если действия «Открыть» для этого типа файлов заканчивается на %1.
Если действие открыть для файла данного типа изменено и строка сохранена перед нажатием кнопки ОК, %1 добавляется в параметр реестра.
Если %1 намеренно добавить действия «Открыть» для этого типа файлов, %1 добавляется в параметр реестра. При дальнейшем %1 удаляется из действия «Открыть», параметр реестра остается неизменной и необходимо изменить вручную.
Кроме того эта проблема может возникнуть при изменении вручную сопоставления файлов XLS-файлов или в некоторых случаях при запуске на одном компьютере несколько версий Excel.
Решение
Чтобы устранить эту проблему, установите последние накопительные обновления для Microsoft Office Excel. Последние накопительные обновления можно найти, щелкнув следующую ссылку:
CAD EX связь данных Excel и AutoCAD первые шаги
953878 накопительного обновления доступны из группы Microsoft Office для предоставления исправления для проблем, о которых сообщалось в
Временное решение
322756 как резервное копирование и восстановление реестра Windows
Чтобы обойти эту проблему, выполните следующие действия.
В поле Открыть введите команду regedit и нажмите кнопку ОК.
Удалите %1 из конца строки значение таким образом, чтобы строка данных выглядела следующим образом:
Нажмите кнопку ОК, а затем закройте редактор реестра.
Дополнительные сведения
Примечание. В некоторых версиях Windows, описанные действия могут существенно отличаться от того, что написано в данной статье. Если это так, обратитесь к документации продукта для выполнения этих действий.
Чтобы изменить действие открыть тип файла, выполните следующие действия.
В области действийнажмите кнопку Открытьи нажмите кнопку Изменить.
Сообщение об ошибке при открытии или сохранении файла в Microsoft Excel: «Недопустимое имя файла» (эта ссылка может указывать на содержимое полностью или частично на английском языке)
Сообщение об ошибке
При открытии или сохранении файла в Microsoft Excel может появиться одно из указанных ниже сообщений об ошибке. Сообщение об ошибке 1
Введенный путь » » слишком длинный. Введите более короткий путь.
Сообщение об ошибке 5 В Microsoft Office Excel 2007 может появиться следующее сообщение об ошибке:
Чтобы проверить сообщение об ошибке, полученное в Excel 2007, нажмите клавиши CTRL + SHIFT + I. В правом нижнем углу диалогового окна «сообщение об ошибке» отображается следующий номер:
Примечание. В Microsoft Office 2000 есть встроенные функциональные возможности, позволяющие получить дополнительные сведения об оповещениях и сообщениях об ошибках, связанных с трудностями.
Примечание. Если вы попали в эту статью нажатием кнопки » веб-информация » в сообщении об ошибке, вы уже включили настраиваемые оповещения.
[Урок AutoCAD] Связь данных таблиц Excel и Автокад.
Причина
Апострофы и квадратные скобки, используемые для обозначая имя книги.
Что попробовать предпринять
Убедитесь, что путь к файлу имеет менее 219 символов. Это можно сделать одним из описанных ниже способов.
Переименуйте файл таким образом, чтобы он стал более коротким именем.
Переименуйте одну или несколько папок, содержащих файл, чтобы они были более короткими именами.
Переместите файл в папку с более коротким именем пути.
Дополнительная информация
Введенный путь » » слишком длинный. Введите более короткий путь.
Кроме того, если вы попытаетесь сохранить файл, а путь превышает 255 символов, появится следующее сообщение об ошибке:
Не удается найти (файл). Проверьте, правильно ли указано имя, и повторите попытку. Решение
Почему не обнаруживается файл
Давайте разберемся, почему на экране нашего компьютера отображается сообщение о том, что не найден файл, и нам нужно проверить имя. Система в скобках указывает путь к файлу, который не получается обнаружить, и советует нам проверить, правильно ли указано имя, и повторить попытку.
Решение проблемы при невозможности открытия exe-файлов
Существует несколько способов решения проблемы открытия exe-файлов. Рассмотрим их по порядку.
Переустановка софта
Если файл удален антивирусной программой, то нет никакой необходимости вытаскивать его из хранилища, не зря же он был туда перемещен. Даже если мы сможем достать его оттуда, он уже поврежден и не сможет функционировать так, как нужно.
В этом случае выход – полная деинсталляция и установка программы, которая не может запуститься. Удалять софт лучше всего не через стандартные средства Windows, а при помощи специального программного обеспечения – Revo Uninstaller либо AIDA64. Они не только деинсталлируют проблемную программу, но и “подчистят” все ненужные остаточные файлы.
Изменение настроек Steam
Бывает, что сообщение о невозможности открыть определенный exe-файл «Не удается найти … Проверьте, правильно ли указано имя, и повторите попытку» появляется при запуске игры. В этом случае применяем следующий алгоритм действий:
Редактор реестра и Диспетчер задач в помощь
Также может помочь отключение автозагрузки приложения, в котором возникает ошибка «Не удается найти (файл)». Открываем Диспетчер задач (в кнопке Пуск), ЛКМ выбираем нужную программу, затем кликаем на нее ПКМ и выбираем “Отключить”.
Решение проблемы с открытием Excel
Ошибка в редакторе локальной групповой политики
В процессе деятельности мы можем столкнуться с тем, что при запуске редактора локальной групповой политики появится окно с сообщением о том, что не найден файл gpedit.msc. Не спешим искать данный файл на своем компьютере, а вспоминаем или смотрим, какая версия Windows установлена на ПК. Если базовая или домашняя – в них редактор ЛГП просто не предусмотрен.
Как вставить таблицу Excel в AutoCAD и настроить связь данных
Очевидно, что работать с таблицами удобнее в Excel, а вот оформление (основная надпись — штамп и рамка) лучше делать в AutoCAD. Сегодня расскажу, как вставить таблицу Excel в AutoCAD, как связать эти два файла так, чтобы при изменении данных в Excel, в AutoCAD автоматически всё обновлялось. А главное, покажу настройки, с которыми AutoCAD не тормозит при обновлении данных.
Чтобы информация была максимально полезной и понятной, буду делать на примере спецификации. Аналогичным образом можно сделать связь для кабельного журнала.
Шаг 1. Заполняем таблицу в Excel
Для начала скачайте файлы шаблонов спецификации по ГОСТ и заполните таблицу в Excel. Тут всё как обычно, но есть один очень важный момент: в первом столбике Поз. не должно быть пустых ячеек. Иначе дальше не сработает.
Спецификация в Excel
Шаг 2. Умные формулы в Excel
Далее на ленте Excel переходим на вкладку Формулы и нажимаем кнопку Диспетчер имён.
Кнопка Диспетчер имён на ленте Excel
Появится окошко. Там уже всё настроено, просто проверьте, что ничего не сломалось. Заодно я объясню, как это работает. Если будете работать со своими таблицами, сможете сделать аналогично. Header — это диапазон «шапки» нашей таблицы. Там должна быть такая формула:
=Спецификация!$A$1:$D$1
Спецификация — название листа. $A$1:$D$1 — диапазон данных на листе (шапка таблицы).
Окно диспетчер имён в Excel. Формула для диапазона Header
Data — это диапазон данных, который формируется автоматически. Там должна быть такая формула:
=СМЕЩ(Спецификация!$A$2;0;0;СЧЁТЗ(Спецификация!$A:$A)+1;9)
Окно диспетчер имён в Excel. Формула для диапазона Data
- Ссылка — ячейка, от которой нужно отсчитывать. Берём верхнюю левую ячейку с данными таблицы. В нашем случае это ячейка «А2» на листе «Спецификация».
- Смещ_по_строкам. Мы будем отсчитывать от ячейки А2. Поэтому в формуле 0.
- Смещ_по_столбцам. Мы будем отсчитывать от ячейки А2. Поэтому в формуле 0.
- Высота — высота в строках результирующего диапазона (т.е. нашей таблицы). Сюда вставляем формулу СЧЁТЗ, прибавляя ещё единицу. Таким образом, у нас в конце спецификации будут ещё две пустых ячейки, т.к. СЧЁТЗ посчитала ещё и первую строчку — шапку таблицы.
- Ширина — ширина в столбиках результирующего диапазона (т.е. нашей таблицы). Указываем 9, т.к. в нашей спецификации фиксированная ширина — 9 столбиков.
Когда в спецификацию будут добавлены новые строки, то диапазон данных автоматически расширится, т.к. функция СЧЁТЗ посчитает число заполненных ячеек в первом столбике листа и автоматически расширит таблицу. Когда лишние строки из таблицы будут удалены, диапазон данных автоматически уменьшится. В итоге, для передачи в AutoCAD у нас всегда будет таблица необходимого размера.
Кстати, если в каком-то другом случае ширина таблицы тоже может меняться, то в аргумент Ширина прописываем аналогичную формулу СЧЁТЗ, только указывая подсчёт по первой строке: $1:$1.
Шаг 3. Настройка в AutoCAD
Открываем шаблон спецификации в AutoCAD с пустой таблицей.
3.1. Настройка связи для шапки таблицы
Выделяем ячейки шапки таблицы (надо выделить всю строку заголовков). Появляется панель с кнопками редактирования таблицы.
Нажимаем кнопку «Связь ячейки. » — она вторая справа. Появляется окошко «Выбор связи с данными».
Окно создания связи AutoCAD и Excel
Нажимаем «Создайте новую связь с данными Excel» и вводим название новой связи — Header. Появляется окно настройки связи с данными Excel.
Выбираем наш Excel-файл cо спецификацией. И устанавливаем ниже «Относительный путь». В параметрах связи выбираем из списка нужный лист (в нашем случае единственный лист «Спецификация»), устанавливаем переключатель в положение «Связь с именованным диапазоном» и выбираем из списка диапазон «Header».
Настройка в AutoCAD новой связи с данными в Excel. Настройка диапазона данных
Дальше в правом нижнем углу этого окошка нажимаем на кнопку со стрелкой, чтобы появились настройки форматирования и вносим некоторые изменения:
- В блоке «Содержимое ячеек» устанавливаем переключатель в положение «Сохранить форматы данных, вычислить формулы в Excel».
- Флажок «Разрешить запись в исходный файл» снимаем. Так получится односторонняя связь — изменения вносим только в Excel, а в AutoCAD будет редактирование будет недоступно.
- В блоке «Форматирование ячеек» флажок «Использование форматирования Excel» отключаем, переключатели ниже должны быть неактивны.
Должно получиться как на картинке.
Настройка в AutoCAD новой связи с данными в Excel. Настройка форматирования
Нажимаем кнопку «Ок». Связь для шапки таблицы настроена.
3.2. Настройка связи для данных таблицы
Устанавливаем курсор на первую пустую ячейку в первом столбике, сразу под «шапкой» таблицы.
Спецификация в AutoCAD. Настройка связи с Excel. Данные таблицы
Далее действуем аналогично настройке связи для заголовка таблицы. Нажимаем кнопку «Связь ячейки. ». Создаём новую связь с именем Data, выполняя аналогичные настройки, только выбираем именованный диапазон Data. Настройки форматирования делаем точно такие же, как для заголовка.
Нажимаем Ок. Связь с данными установлена. AutoCAD сразу же загрузит данные из таблицы Excel в таблицу AutoCAD. Остаётся удалить лишние строки, которые были в таблице шаблона. При этом строки, которые охватывает связь с Excel, удалить не получится.
Заполненная спецификация в AutoCAD после настройки связи с Excel
Опытным путём было установлено, что данные настройки форматирования — оптимальные в плане производительности, когда AutoCAD обновляет связанные данные. При других настройках обновление происходило очень долго, а при таких занимает минимальное время.
Шаг 4. Обновление данных
При изменении данных в таблице Excel, сразу после сохранения файла, в AutoCAD в правом нижнем углу появится уведомление.
Уведомление в AutoCAD об изменении данных в связанной таблице Excel
Для импорта обновлённых данных из таблицы Excel в AutoCAD просто нажмите на синюю ссылку в уведомлении. AutoCAD импортирует и перезапишет изменённые данные в связанной таблице.
Источник: ddecad.ru
Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
В своих программах я использую следующий вызов Excel из AutoCAD:
On Error Resume Next Set ПрограммаAutoCAD = ThisDrawing.Application If ПриложениеExcell Is Nothing Then ПроверитьПолучениеExcel: ‘ Функция GetObject, вызванная без указания первого аргумента, ‘ возвращает ссылку на экземпляр приложения. Если это приложение ‘ не запущено, возвращается ошибка. Обратите внимание на запятую, ‘ стоящую на месте отсутствующего первого аргумента.
Set ПриложениеExcell = VBA.GetObject(, «Excel.Application») If ПриложениеExcell Is Nothing Then Set ПриложениеExcell = VBA.GetObject(«», «Excel.Application») GoTo ПроверитьПолучениеExcel End If End If ‘ Проверка Excel. Если Excel выполняется, ‘ он вводится в таблицу выполняемых объектов (Running Object table). If DetectExcel = 0 Then Set ПриложениеExcell = Nothing GoTo ПроверитьПолучениеExcel End If Err.Clear ПриложениеExcell.Visible = True ‘Описываем необходимые процедуры API: Private Declare Function FindWindow Lib «user32» Alias _ «FindWindowA» (ByVal lpClassName As String, _ ByVal lpWindowName As Long) As Long Private Declare Function SendMessage Lib «user32» Alias _ «SendMessageA» (ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long Public Function DetectExcel() As Long ‘ Процедура находит выполняемый Excel и регистрирует его. Const WM_USER = 1024 Dim hWnd As Long ‘ Если Excel выполняется, этот вызов API возвращает его дескриптор. hWnd = FindWindow(«XLMAIN», 0) If hWnd = 0 Then ‘ 0 означает, что Excel не выполняется. DetectExcel = 0 Exit Function Else ‘ Excel выполняется. Используйте функцию API SendMessage, чтобы ввести его в таблицу выполняемых объектов (Running Object Table). ‘ SendMessage hWnd, WM_USER + 18, 0, 0 DetectExcel = hWnd End If End Function
Далее можно работать в Excel сколько угодно, а потом когда надо закрыть файл Excel и запустить другой файл происходит следующее:
1) Закрываем Excel при этом процесс Excel остаётся активным в диспетчере задач, а сам Exel при этом уже закрыт. Спрашивается: почему остался работающим процесс, когда программа уже закрылась? Может надо чтобы команду закрытия процесса дал AutoCAD, потому что Excel запускался из AutoCAD? Как это сделать? Или надо специальным образом запускать Excel чтобы следить за тем когда он закрывается?
2) Если попытаться открыть другой файл Excel то Excel работает без отображения ячеек. На экране видны только команды меню и панели инструментов. Ячеек не видно, вместо них чертёж AutoCAD или окно другой работающей программы. Доступа к ячейкам нет. Ясно, что с таким Excelем работать нельзя, неопытных пользователей это просто приводит в ужас!
Появляются претензии, что я своим макросом испортил настройки в компьютере и Excel перестал правильно работать! Конечно, чтобы справиться с этой проблемой надо закрыть Excel, открыть диспетчер задач, найти там всё ещё работающий процесс Excel и остановить его. После этого можно запускать снова Excel и никаких проблем не будет.
Но разьве объяснишь это обычным пользователям, для обычных пользователей это просто дико слушать и в итоге программа никому не нравится. Спрашивается зачем было делать эту ложку дёгтя в бочка мёда работы Excel из AutoCAD? Как надо правильно запускать Excel из AutoCAD, чтобы он правильно закрывался и нормально потом запускался снова и не было претензий от других пользователей программы?
#2 Ответ от Миша 6 июня 2006г. 03:14:03
Re: Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
Замечено, что если после закрытия Excel в п.1 закрыть AutoCAD лишний процесс Excel в диспетечере задач тоже останавливается. Может есть специальный метод который может остановить этот процесс без закрытия AutoCAD?
И ещё вопрос: Правильно ли я сделал что отключил вызов функции
‘ SendMessage hWnd, WM_USER + 18, 0, 0
так как и без этой функции процесс Excel запускается в диспетчере задач? У меня программа и так работает. По логике, чтобы остановить процесс Excel надо запустить функцию противоположную функции «SendMessage», только что это за функция и как организовать запуск этой функции, чтобы она всегда была на готове и ждала когда закроется Excel?
По моему это очень сложно и невозможно. Как вы думаете нет решения этой проблемы?
#3 Ответ от kpblc 6 июня 2006г. 08:54:09
Re: Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
ИМХО (поскольку с VBA мало работаю) — наверное, проблема в том, что Excel при вызове подобным методом используется ACAD’ом как СОМ-сервер, соответственно его надо релизить. Но время «освобождения», во-первых, неизвестно, а, во-вторых, при работе через lisp Excel тоже далеко не сразу закрывается. Я думаю, что надо все же использовать другие методы вызова Excel’a и обращения с ним.
#4 Ответ от StudentCM 26 декабря 2007г. 15:54:19
Re: Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
Закрываем Excel при этом процесс Excel остаётся активным в диспетчере задач, а сам Exel при этом уже закрыт. Спрашивается: почему остался работающим процесс, когда программа уже закрылась? Может надо чтобы команду закрытия процесса дал AutoCAD, потому что Excel запускался из AutoCAD? Как это сделать?
у меня проблема один в один была, просто ужас. освобождение через Nothing не помогало. интересно, что если выгрузить проект или выйти из автокада или (!) нажать alt+f11 и кнопочку Стоп(Reset) на панели VBAEditor’а, то этот фантомный процесс исчезает!! 8-(
Бился два дня, искал решения и через API и через LISP, и уже когда отчаялся и хотел забить. Вот как в итоге решился гемор. Знатоки, может это вам будет интересно.
в конце кода вставить End
Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing End End With End Sub
Видимо для VBA End помощнее, чем обыкновенное End Sub и этот End рубит концы и в памяти машины.
#5 Ответ от Dron 27 декабря 2007г. 02:16:59
Re: Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
Тоже сталкивался с подобной проблемой. Кстати, подобная проблема возникает и при выгрузке файлов из Excel, в списке объектов, в VBA редакторе, они остаются.
Данная проблема связана как раз именно с освобождением используемых объектов.
Просто перед выгрузкой приложения, всем объектам, которые вы использовали (листы, ячейки, файлы, графические объекты и т. д.), необходимо присвоить Nothing. В противном случае, вызванное приложение само эти объекты не освобождает, поэтому будет активным в системе до освобождения всех объектов или до выгрузки вызывающего приложения, что автоматически ведёт к освобождению всех объектов.
Поэтому проверьте повнимательней свой программный код.
Что касается использования END, то это равноценно завершению работы вашего приложения, что автоматически ведёт к закрытию всех объектов.
На самом деле вопрос не однозначен. В чём конкретно суть задачи.
Запустить програмно Excel, выполнить код и оставить Excel открытым, но при этом ваше приложение свою работу завершает полностью или оно тоже остаётся активным и пользователь работает параллельно в Excel и вашем приложении, а проблема возникает когда пользователь сам закрывает Excel и ваше приложение повторно его открывает? Если в этом, то перед:
If ПриложениеExcell Is Nothing Then
Set ПриложениеExcell = Nothing
плюс к этому освобождение всех используемых объектов.
#6 Ответ от StudentCM 27 декабря 2007г. 10:05:09
Re: Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
Спасибо за ответ. Суть задачи — открыть эксель, заполнить таблицу данными из чертежа и завершить приложение, оставив Excel открытым в полное распоряжение пользователя. Все просто.
Приведу код, отвечающий за это:
. ‘в наборе будут вхождения блоков с нужными атрибутами sset.Select acSelectionSetAll, , , fT, fD Dim xlApp As Excel.Application Set xlApp = Nothing Dim xlBook As Workbook Dim xlSheet As Worksheet On Error Resume Next Err.Clear Set xlApp = GetObject(, «Excel.Application») If Err <> 0 Then Err.Clear Set xlApp = CreateObject(«Excel.Application») If Err <> 0 Then MsgBox «Cannot start Excel», vbExclamation End End If End If Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) xlApp.Visible = True Cells(1, 1).Value = «Номер» Cells(. ).Value = «. » . Dim atts As Variant ‘для атрибутов For i = 0 To sset.Count — 1 atts = sset(i).GetAttributes Cells(i + 2, 1).Value = atts(0).TextString Cells(. ).Value = atts(. ).TextString . Next i ‘далее выбор и сортировка Dim myRan As Excel.Range Set myRan = Range(«A2», Cells(sset.Count + 1, 5)) myRan.Sort Cells(2, 1) Set myRan = Nothing Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing End End With End Sub
Без End в конце кода, если пользователь закроет Excel, то процесс будет висеть и повтороно приложение не запустится. Не понимаю почему, но теперь, елси пользователь нЕ закроет Excel, и запустит приложение, то новая книга создастся, однако ничего не заполнится 🙁
Ясно, что что-то где-то забыл, но что? Может, Excel вызываю как-то криво.
#7 Ответ от brigval 27 декабря 2007г. 16:35:20
Re: Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
#8 Ответ от StudentCM 27 декабря 2007г. 17:05:53
Re: Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
2 brigval
Спасибо большое за исправление!
Удивительное рядом.
Теперь, когда все закрыто запускаю Excel, просто новый документ. Когда начинаю вводить что-нибудь в ячейки ЗАПУСКАЕТСЯ ПРОЦЕСС ACAD.EXE в невидимом режиме. Когда хочу открыть файл, из которого раньше списывал атрибуты, говорит, что ОН УЖЕ МНОЮ ОТКРЫТ! Наверное уже в реестре что-то засело. Замечено, что с «фантомным» автокадом запускается процесс ~e5d141.tmp и процесс WSCommCntr1.exe.
А при удалении этих процессов мой макрос все-равно работает.
Подскажите, пожалуйста, как избежать лишних (СОМ?)связей между приложениями, в чем может быть проблема?
#9 Ответ от Dron 28 декабря 2007г. 01:34:54
Re: Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
В конце кода у тебя стоит код закрытия не существующего цикла (по крайней мере в приведённом куске):
End With
Странно, что VBA не выругался.
Удали данную строку и строку с END.
Приведённая задача простейшая и стандартная, проблем быть не должно.
Вызов Excel не причём, ошибка где-то в другом, но в приведённом коде, за исключением выше сказанного, всё в порядке.
По поводу:
xlSheet.Cells(1, 1).Value = .
если работаешь с активным листом в активной книге, то указание листа или книги не обязательно.
#10 Ответ от brigval 28 декабря 2007г. 19:59:27
Re: Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
Dron пишет: