(Excel и PowerPoint 2011 для Mac)Excel-VBA вызова Powerpoint макрос терпит неудачу во время работы непосредственно на PowerPoint работает отлично
У меня есть макрос первенствовать, который открывает и PowerPoint выполняет макрос. Если я выполнить Powerpoint макрос непосредственно работает нормально, но если я исполню ее из макровызова первенствовать он терпит неудачу с ошибкой времени выполнения «68»: Устройство недоступно
Это до этого цикла:
Dim strfilee As String
mydir = ":tmp"
strpath = mydir & ":"
strfilee = Dir(strpath) <--- Failing on this line
''''Loop through each file in the folder to find the one with the OS parameters
i = 0
Do While Len(strfilee) > 0
cellplace = "A" & i
If Right(strfilee, 11) = "params.pptx" Then
lspace = InStr(1, strfilee, "_", vbTextCompare)
target_name = Trim(Left(strfilee, lspace - 1))
sc_file_name = "tmp" & ":" & strfilee
With ActivePresentation
number_slides = .Slides(.Slides.Count).SlideNumber
End With
ActivePresentation.Slides.InsertFromFile sc_file_name, number_slides
End If
strfilee = Dir
i = i + 1
Loop
Значит, ваша переменная path имеет значение ": tmp:". Я не вижу, как это работает в любом случае. Если это не локальный привод, например, «C: \ tmp \» или сетевое расположение, такое как «\\ myServer \ tmp \». Согласно MSDN, функция Dir принимает параметр PathName как «выражение String, которое указывает имя файла, имя каталога или папки или метку тома диска». –
Здравствуйте, JamieG, спасибо, что ответили. : tmp - это просто ссылка на папку tmp в фактической папке, где расположена презентация. Я попытаюсь изменить его на глобальный, чтобы увидеть, может ли это быть основной причиной. Благодаря! – Diego
Это исправило проблему. Когда вы выполняете макрос непосредственно на Powerpoint, относительный путь «: tmp:» работает нормально. Если вы хотите вызвать макрос powerpoint из excel, вы должны поместить глобальный маршрут (activepresentation.path $ ": tmp:" – Diego