Прескочи към основното съдържание Прескочи към навигацията

Проблем с генерирането на презентацията.

AI AI

Здравейте, как да отстраня грешката? Variable not defined. Не намерих подобна в предишните дискусии.

Здравейте, Яна,

Грешката "Variable not defined" при генериране на презентацията

Тази грешка във VBA кода означава, че се използва променлива или константа, която не е предварително декларирана или дефинирана. В случая на скрийншота, проблемът е с ppSlideSizeOnScreen16x9.

Това име е специална константа, която се използва за задаване на размер на слайда и трябва да бъде разпозната от PowerPoint. Ако тя не е, причината обикновено е:

  • Липсваща препратка (reference) към PowerPoint Object Library.

Как да го поправите:

  1. Във Visual Basic Editor (VBE) изберете от менюто ToolsReferences (Инструменти → Препратки).
  2. В списъка отбележете Microsoft PowerPoint xx.0 Object Library (в зависимост от вашата версия на Office).
  3. Натиснете OK, затворете прозореца и стартирайте отново кода.

Алтернатива, ако ползвате само стандартен код:

Ако не искате да добавяте препратки, заменете ppSlideSizeOnScreen16x9 с числовата стойност, която тя

Здравейте, това което давате като предложение е отбелязано при мен, тоест Алтернативата не я виждам, не ми излиза коментарът ви до край...

Здравейте, Яна, проблемът Ви възниква, защото в началото на Вашия код вероятно е активирана настройката Option Explicit, която изисква всяка променлива да бъде предварително декларирана, а променливата ppSlideSizeWidescreen (която е маркирана на екранната снимка) не е разпозната от системата.

Въпреки че сте заредили библиотеките, понякога специфични константи не се зареждат правилно или има печатна грешка в името им.

Ето как да отстраните грешката стъпка по стъпка:

1. Деклариране на променливата ръчно

Най-бързият начин да поправите това, без да променяте настройките на редактора, е да дефинирате константата ръчно в кода си.

  • Отидете в началото на Вашата процедура Sub Generate_AI_Forwarding_Deck_From_DOCX().
  • Добавете следния ред код веднага след заглавието на процедурата: Const ppSlideSizeWidescreen As Integer = 4
  • Опитайте да стартирате макроса отново.

2. Проверка на изписването

Уверете се, че редът, който предизвиква грешката, е изписан точно така: pres.PageSetup.SlideSize = ppSlideSizeWidescreen Ако има дори една изпусната буква, VBA ще я третира като нова, недефинирана променлива.

3. Алтернативен вариант (използване на директна стойност)

Ако горните стъпки не помогнат, можете да замените името на променливата с нейната числена стойност, която съответства на Widescreen формат в PowerPoint:

  • Заменете реда: pres.PageSetup.SlideSize = ppSlideSizeWidescreen
  • Със следния ред: pres.PageSetup.SlideSize = 4

Важно уточнение: Тъй като използвате Microsoft PowerPoint 16.0 Object Library, тези константи би трябвало да са налични, но ръчното им деклариране е стандартна практика при работа в режим Option Explicit, за да се избегнат точно такива компилационни грешки.

Привет, благодаря за предложенията! За съжаление не се получи... подозирм, че генерално настройките не са ми ок (с нов лаптоп съм). Ще отделя време и ще се опитам да фиксна сама :)


Вашият отговор

Запиши се в Аула

или
Вашият имейл е защитен при нас.