Ошибка Excel VBA 467 при попытке открыть презентацию PowerPoint

Цель кода : если PowerPoint открыт и поиск по умолчанию открыт, а затем обновите его. Если презентация закрыта, откройте ее. Если PowerPoint закрыт, создайте новый экземпляр.

Ошибка : после того, как несколько пользователей запустили ее на многоуровневых компьютерах за последние 2 недели, сегодня один из пользователей получает следующее сообщение об ошибке:

Ошибка времени выполнения 467: машина удаленного сервера не существует или недоступна

Линейный код выделен в режиме отладки :

Set ppPres = ppProgram.Presentations.Item(i) 

Соответствующий раздел Модульного кода :

 Public Sub UpdatePowerPoint(PowerPointFile) Dim ppProgram As PowerPoint.Application Dim ppPres As PowerPoint.Presentation Dim ppFullPath As String Dim ppName As String Dim activeSlide As PowerPoint.Slide Dim cht As Excel.ChartObject Dim myShape As Object Dim myChart As Object Dim SlideNum, GPLRank As Integer Dim ShapeNum As Integer Dim shapeStageStat As Shape On Error Resume Next Set ppProgram = GetObject(, "PowerPoint.Application") On Error GoTo 0 ppFullPath = PowerPointFile PPT_Export_Success = True ' check if PowerPoint instance is open If ppProgram Is Nothing Then Set ppProgram = New PowerPoint.Application i = 1 Else If ppProgram.Presentations.count > 0 Then ppName = Mid(ppFullPath, InStrRev(ppFullPath, "\") + 1, Len(ppFullPath)) i = 1 ppCount = ppProgram.Presentations.count Do Until i = ppCount + 1 If ppProgram.Presentations.Item(i).Name = ppName Then Set ppPres = ppProgram.Presentations.Item(i) GoTo OnePager_Pres_Found Else i = i + 1 End If Loop End If End If ppProgram.Presentations.Open Filename:=PowerPointFile ' *** Getting the ERROR at the line below *** Set ppPres = ppProgram.Presentations.Item(i) OnePager_Pres_Found: ppPres.Windows(1).Activate ' activate the One-Pager Presentation in case you have several open, and the One_pager is currently not the app "on-focus" ' --- Added Class script to allow PowerPoint ScreenUpdating set to FALSE --- Dim myClass_PPT As Class_PPT Set myClass_PPT = New Class_PPT myClass_PPT.ScreenUpdating = False ' loop through all PowerPoint Slides, and copy all Chart objects from Excel For ProjectCounter = 0 To NumberofProjectShts ' copying charts, shapes and other objects Next ' ProjectCounter = 0 To NumberofProjectShts AppActivate ("Microsoft PowerPoint") Set activeSlide = Nothing Set ppPres = Nothing Set ppProgram = Nothing End Sub 

Ваш код – выдержка ниже – выглядит немного странно для меня:

 ' check if PowerPoint instance is open If ppProgram Is Nothing Then Set ppProgram = New PowerPoint.Application i = 1 Else If ppProgram.Presentations.count > 0 Then ppName = Mid(ppFullPath, InStrRev(ppFullPath, "\") + 1, Len(ppFullPath)) i = 1 ppCount = ppProgram.Presentations.count Do Until i = ppCount + 1 If ppProgram.Presentations.Item(i).Name = ppName Then Set ppPres = ppProgram.Presentations.Item(i) GoTo OnePager_Pres_Found Else i = i + 1 End If Loop End If End If ppProgram.Presentations.Open Filename:=PowerPointFile ' *** Getting the ERROR at the line below *** Set ppPres = ppProgram.Presentations.Item(i) OnePager_Pres_Found: ppPres.Windows(1).Activate ' activate the One-Pager Presentation in case you have several open, and the One_pager is currently not the app "on-focus" 

В случае, если Powerpoint открывается с некоторыми презентациями, но не с теми, которые вы хотите (PowerPointFile), в строке, которая дает вам ошибку, что вы пытаетесь сделать? (i равно Презентации.count)

Я думаю, что это неправильно и должно быть заменено ActivePresentation, только что открытым на линии раньше.

Возможно, вы можете немного изменить структуру кода, чтобы иметь более четкую структуру / обработку дела.

  • Ошибка при попытке скопировать Excel Range и PasteSpecial в слайде PowerPoint (используя Late Binding)
  • Обновление PowerPoint / заполнение встроенной таблицы Excel при щелчке мышью в слайд-шоу
  • Проблемы VBA (и VB6) при вставке из Excel в PowerPoint
  • Изменение цвета заполнения ячейки на основе цвета шрифта
  • Сбой программы Cofusing во время копирования
  • Ошибка 451 при ссылке на презентации и слайды PowerPoint
  • Поддерживать форматирование шрифтов из Excel в Powerpoint
  • Найти и заменить на рабочий лист Excel PowerPoint для диаграммы
  • Перебирайте несколько именованных диапазонов и значений ячеек для управления различными параметрами форматирования PowerPoint =
  • Копирование диаграмм в PowerPoint при сохранении форматирования исходного кода
  • Программно создавать макет PowerPoint с помощью VBA?
  • Interesting Posts

    Как разобрать этот ожидающий утвержденный и поставленный товар (Excel)

    Удалить круглые скобки с текстом в Excel

    Объединить функцию IF с функцией ИЛИ, чтобы разрешить несколько условий

    Как вы делаете границы ячейки такими же, как и другие?

    Excel VBA: создание новых листов из общего значения столбца

    Excel VBA Filter Change обработчик события

    как читать определенную строку из excel на основе некоторого уникального значения в java с помощью POI?

    Вернитесь к первой строке

    Скопируйте несколько рабочих листов Excel из нескольких книг в новую книгу с помощью PowerShell

    POI setColumnWidth – ширина символа?

    Excel vba не может найти дату при вводе пользователем

    Как я могу SUMIFS, где критерии – это набор чисел из столбца?

    Как создать RegEx с SubMatches одного и того же совпадения, которые захватывают 2 разных типа вывода?

    Поместите формулу внутри ячейки, используя автоматический путь

    Форсировать размер шрифта столбца Excel по сценарию VBA

    Давайте будем гением компьютера.