Не удалось извлечь содержимое текстового поля Powerpoint в Excel с помощью Excel VBA

Хорошо, поэтому мне удалось написать следующий код до сих пор, но я продолжаю получать 424 object required ошибку 424 object required в строке, начинающейся с range . Может ли кто-нибудь сказать мне, как это исправить?

 Sub GetText() Set PPApp = GetObject(, "PowerPoint.Application") i = 1 Do While i <= PPApp.ActivePresentation.Slides(1).Shapes.Count If PPApp.ActivePresentation.Slides(1).Shapes(i).Type = msoTextBox Then range(Cells(i, 15)).Value = PApp.ActivePresentation.Slides(1).Shapes(i).TextFrame.TextRange.Text End If i = i + 1 Loop End Sub 

У вас есть две ошибки в коде.

  1. Simoco уже обратился к вашей первой ошибке. т.е. вам нужно использовать Cells(i, 15).Value range(Cells(i, 15)).Value вместо range(Cells(i, 15)).Value

  2. У вас есть опечатка. Если бы вы использовали Option Explicit вы бы знали, где ошибка:)

У вас PPApp как объект powerpoint, но использует PApp и, следовательно, object required error

Также, пожалуйста, объявите свои переменные и полностью квалифицируйте свои объекты.

Это то, что вы пытаетесь?

 Option Explicit Sub GetText() Dim PPApp As Object Dim ws As Worksheet Dim i As Long Set PPApp = GetObject(, "PowerPoint.Application") i = 1 '~~> Change this to the relevant sheet Set ws = ThisWorkbook.Sheets("Sheet1") Do While i <= PPApp.ActivePresentation.Slides(1).Shapes.Count If PPApp.ActivePresentation.Slides(1).Shapes(i).Type = msoTextBox Then ws.Cells(i, 15).Value = PPApp.ActivePresentation.Slides(1).Shapes(i).TextFrame.TextRange.Text End If i = i + 1 Loop End Sub 

Немногие другие наблюдения.

  1. Вы используете GetObject . Если есть несколько экземпляров powerpoint, то вы не можете получить правильный результат.

  2. Вы увеличиваете значение i даже если форма не является msoTextBox . Это может привести к пропуску строк при записи в лист Excel. Вы можете использовать другую переменную и прирост, что внутри If-EndiF

  • Получить значения для текстового поля из ячейки Excel в C #
  • Использование пользовательской формы VBA в Excel 2011 на Mac (запрограммировано в Windows): текстовое поле не работает
  • Добавление текста в текстовое поле
  • Блокировка TextBox от перемещения и изменения размера листа и только редактирование текста Excel VBA
  • Как я могу суммировать значение в 8 текстовых файлах с одним текстовым полем?
  • Excel VBA; UserForm, запуск одного фрагмента кода для разных значений TextBox
  • Очистка текстового поля при нажатии кнопки VBA
  • Текст текстового поля исчезает при вводе текста Excel VBA - часть 2
  • Очистка строки, при выборе элемента в текстовом поле, из текстового поля и исходного листа
  • Создание текстового поля для запуска формулы VBA
  • Добавление текстовых и текстовых значений в ячейку
  • Давайте будем гением компьютера.