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

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

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, за да се избегнат точно такива компилационни грешки.


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

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

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