у меня есть два файла
Дракон MWB 5x7 - Финал:Добавлено поле управления содержимым в правом верхнем углу, где размещена фраза Random.
- У вас есть макрос под названием «Extract_Random_Phrases_from_XL()»?
- Добавлена библиотека объектов Microsoft Excel.
Личные стратегии:список фраз.
Теперь, когда я запускаю следующий код, он выдает ошибку времени выполнения«Переменная объекта или переменная блока не сконфигурирована, ошибка 91»
В
Я не знаю, как установить этот код. пожалуйста помоги
Sub Extract_Random_Phrases_from_XL()Dim oXL As Excel.ApplicationDim oWB As Excel.WorkbookDim oSheet As Excel.WorksheetDim oRng As Excel.RangeDim ExcelWasNotRunning As BooleanDim WorkbookToWorkOn As String''''''''''Укажите рабочую книгу для получения случайных фраз ' ' ' ''''''''''WorkbookToWorkOn = ActiveDocument.Path & "\Oblique Strategies.xlsx"' Если Excel запущен, получите его; В противном случае запустите новый экземпляр ExcelOn Error Resume NextSet oXL = GetObject(, "Excel.Application")If Err Then ExcelWasNotRunning = True Set oXL = New Excel.ApplicationEnd IfOn Error GoTo Err_Handler'Open the workbookSet oWB = oXL.Workbooks .Open ( FileName:=WorkbookToWorkOn) ''''''''''''''''''''''''''''''''''''''''''''' '' '' '' '''''''''''''''''''''ActiveDocument.ContentControls(1).Range.Text = oWB.Worksheets("Косые стратегии") .Range("C2" ) . Стоимость''''''''''''''''''''''''''''''''''''''''''''''''''' ' '' '' '' ''''''''''''''''''''''Если Excel не запущен, то oWB.Close SaveChanges:=FalseEnd If'Обязательно освободите ссылки на объекты.Set oRng = NothingSet oSheet = NothingSet oWB = NothingSet oXL = Nothing ' Ошибка вызывает End IfEnd Sub line
Где я делаю неправильно? Если есть другой способ выполнить это задание, подскажите пожалуйста? Если в моем коде есть лишняя строка, пожалуйста, укажите это?
выдающийсяvbaОбъектМС Word
Фуэнте 03 мая 2021 г., 18:16
2 ответа
- Получена ошибка времени выполнения '91': переменная объекта или переменная блока не установлена
Решение Ошибка выполнения '91': не задана переменная объекта или переменная блока. ..
- Ошибка выполнения 91 Переменная объекта или с ненастроенной переменной блока
Я новичок в VBA для Excel, и у меня есть небольшая проблема. У меня есть список дат и две работы, которыми я хочу заниматься. Первый удаляет строки с любым значением в столбце J, равным 0; Вторая часть: я хочу перебрать лишние строки и удалить все...
1
Я не думаю, что вы делаете что-то неправильно, и есть много свидетельств того, что COM Office не будет работать на Mac.Мой код очень похож на ваш и страдает от той же проблемы на Mac.Я пробовал варианты открыв файл XLSM, содержащий объект приложения Excel, объект Excel.Workbook и объект Workbook. Это просто не работает. В отличие от других ответов, объект XL правильно создается, когда он недоступен, или правильно «получается» через GETOBJECT, как я вижу в диспетчере задач Windows:
Dim XL As Excel.ApplicationDim WB As String: WB = "RCRs.xlsm" Dim FileName As StringDim ExcelWasAlreadyUp As BooleanUnload UserForm1UserForm2.ShowOn Error Resume NextSet XL = GetObject(, "Excel.Application")If Err.Number = 0 Then 'attachment к успешному экземпляру Excel ExcelWasAlreadyUp = TrueElse 'Не удалось прикрепить файл к экземпляру Excel, вместо этого создайте GoTo Error 0 Dim JArray() как вариант 'Jira data arrayDim ArrayCols As Integer'========== = = ============================================= С XL С . Книги .Open(ActivePresentation.Path & "/" & WB) заканчиваются .Calculation = xlCalculationManual . CalculateBeforeSave = False .CutCopyMode = False .DisplayAlerts = False .EnableEvents = False '.Range("tbl_JiraKeysExtended").ListObject.QueryTable.Refresh BackgroundQuery:=False JArray = .Range("tbl_JiraKeysExtended") 'Прочитать всю информацию из базовой заявки из Jira сразу в .Workbooks(WB).Close Savechanges:=FalseEnd With'============================== = = == ====================' Закройте Excel, но только если он не был активен перед запуском скрипта If ExcelWasYaUp = False Then XL.Quit Set XL = NothingEndIf
По-видимому, невозможно открыть файл с объектом XL или WB. Этот код является пуленепробиваемым в Windows...
Использование объекта OLE может быть решением этой проблемы, и я опубликую его снова, если он сработает.
Изменить: здесь я нашел загадочную информацию о доступе к файлам Mac:https://warwick.ac.uk/fac/sci/systemsbiology/staff/dyer/software/excelvbafileopen/
В версиях Excel 2016 года VBA работает в песочнице, что означает, что для открытия файла необходимо дать явное разрешение. В этом нет необходимости, если файл открывается с помощью AppleScript 'fileopen. Для других файлов это обеспечивается методом GrantAccessToMultipleFiles. Он заключен в метод, потому что если он встречается в коде до Excel 2016 или на Mac, он выдает непроницаемую ошибку.
Функция GrantFileAccess(filePermissionCandidates) grantFileAccess = GrantAccessToMultipleFiles(filePermissionCandidates) 'возвращает true, если доступ предоставлен, иначе false_End Function
Лично у меня нет Mac, чтобы проверить это. Пожалуйста, дайте отзыв, если это поможет вашему сценарию.
14 мая 2021 г., 5:57
- Ошибка времени выполнения «91»: переменная объекта или переменная блока не установлены, пока данные URL находятся в VBA
Я получаю сообщение об ошибке выполнения "91": переменная объекта или переменная блока не задана при написании данных URL-адреса. Я получаю эту ошибку в конце моего кода, где мой код должен был работать, т.е. ЧАС. всплывающее окно .щелчок . Одна вещь, которую я заметил, когда я запускал этот код ниже шаг за шагом с помощью F8, я не нашел этой ошибки, но...
- Проблема VBA Excel GetObject - ошибка выполнения 91 - переменная объекта или переменная блока не установлены
Ошибка ответа: Ошибка выполнения 91: переменная объекта или переменная блока не установлена. Разрешение строки с MsgBox() : Sub CATMain() Dim xlApp As Excel.Application Set xlApp = VBA.GetObject(, Excel.Application) Dim exlBook As Excel.Workbook Set exlBook = xlApp.ActiveWorkbook MsgBox...
Вот еще один подход к получению данных претендента, использующий OLE вместо COM. Опять же, нет Mac для тестирования. Этот код также интегрирует относительно неизвестную команду Mac VBA, которая обманом заставляет пользователей регистрировать файлы для получения авторизованного доступа к песочнице Office. Код тщательно прокомментирован, чтобы внести любые изменения, необходимые для продвижения сценария на Mac.
Стратегия этого скрипта заключается в добавлении второго слайда к представлению, которое в противном случае имеет только один слайд. На этом втором слайде добавьте объект в форме значка OLE, который будет служить туннелем к рабочему листу, из которого будут извлекаться данные. Когда все будет импортировано, очистите, удалив объект OLE и слайд. В Windows это приводит к правильному закрытию драйвера Excel.exe диспетчером задач.
«Начиная с Office 2016 для Mac, Office работает в песочнице и требует уникального пользовательского ввода, чтобы разрешить доступ к файлам за пределами песочницы: Dim FolderSeparator As String#If MAC_OFFICE_VERSION >= 15 Then «Объявить переменные Dim fileAccessGranted As Boolean Dim filePermissionCandidates» создает массив путей к файлам для необходимых разрешений. FolderSeparator = "/" filePermissionCandidates = Array(ActivePresentation.Path & FolderSeparator & "RCRs.xlsm") 'Запросить доступ пользователя. fileAccessGranted = GrantAccessToMultipleFiles(filePermissionCandidates) 'Возвращает true, если доступ предоставлен; в противном случае false.#Else FolderSeparator = "\"#End IfLoad UserForm2UserForm2.Show '******************' Неиспользуемая переменная в моем экземпляре Windows, поскольку объект был удален в OLE вручную добавлен ' down' экземпляры Excel успешно. Для реализации Mac может потребоваться дополнительный код обработчика Excel: Dim ExcelWasAlreadyUp As Boolean'******************Dim XL As ObjectOn Error Resume NextSet XL = GetObject(, "Excel.Application") ' YMMV 'Set XL = GetObject(, "Object") 'YMMVIIf Err.Number = 0 Then 'Файл, прикрепленный к экземпляру Excel, был успешно завершен ExcelWasAlreadyUp = TrueElse 'Файл, прикрепленный к экземпляру Excel, не выполнен, создайте вместо него 'Debug.Print Err.Number' ошибка. ожидайте число 429 здесь ExcelWasAlreadyUp = False '********************' Использование 'Object' может потребоваться для совместимости с Mac (?), но в Windows «Object» ключевое слово не позволяет правильному закрытию нового экземпляра Excel при удалении объекта OLE. Выберите один из них: Set XL = CreateObject("Excel.Application") 'YMMV' Set XL = CreateObject("Object") 'YMMV '******************* * * End IfOn Error GoTo 0Dim pptLayout As CustomLayoutSet pptLayout = ActivePresentation.Slides(1).CustomLayoutDim sld As PowerPoint.SlideSet sld = ActivePresentation.Slides.AddSlide(2, pptLayout)Dim shp As ShapeSet shp = ActivePresentation.Slides(2). . AddOLEObject _ (FileName:=ActivePresentation.Path + FolderSeparator + "rcrs.xlsx", _ DisplayAsIcon:=True)Dim objOLE As ObjectSet objOLE = shp.OLEFormat.ObjectDim rng As RangeSet rng = objOLE.Sheets("JiraAll").Range ("arr_JIRA") Dim JArray() As VariantJArray() = rngshp.DeleteSet shp = Nothingsld.DeleteSet sld = Nothing 'с этого момента все *созданные* объекты Windows Excel будут закрыты PowerPoint самостоятельно
Обратите внимание, что Excel может предложить пользователю включить макросы.
15 мая 2021 г., 21:06
Похожие вопросы:
Переменная объекта или переменная блока не задана (ошибка 91) в Excel
Проблема: переменная объекта или переменная блока не установлена (ошибка 91) в Excel VBA. Sub RegisterNewUser() 'Отключить обновление экрана во время выполнения кода Application.ScreenUpdating = False...
Что не так с моим кодом: «Ошибка выполнения 91: переменная объекта или не задана с переменной блока»
Можете ли вы проверить, что мне не хватает в моем коде? Когда дело доходит до wrd.Visible = True, это дает мне ошибку времени выполнения 91: переменная объекта или переменная блока не установлена. У меня уже есть...
Новое в Excel-VBA: ошибка времени выполнения «91»: переменная объекта или переменная блока не установлена
Я новичок в Excel-VBA, поэтому извините за невежество. ;) Собственно пытаюсь запустить программу на выбранном листе пользовательской формы. Затем программа получит значение выбранного листа...
Получена ошибка времени выполнения '91': переменная объекта или переменная блока не установлена
Я получаю ошибку времени выполнения "91": переменная объекта или переменная блока не установлена. Я не уверен, что мне не хватает. Sub Macro1() Dim Lcol As Long Dim WS As Worksheets With WS Lcol = WS.Cells( 1,...
Ошибка выполнения 91 Переменная объекта или с ненастроенной переменной блока
Я новичок в VBA для Excel, и у меня есть небольшая проблема. У меня есть список дат и две работы, которыми я хочу заниматься. Первый удаляет строки с любым значением в столбце J...
Ошибка времени выполнения «91»: переменная объекта или переменная блока не установлены, пока данные URL находятся в VBA
Я получаю сообщение об ошибке выполнения "91": переменная объекта или переменная блока не задана при выполнении сценариев данных URL. Я получаю эту ошибку в конце моего кода, где мой код должен был работать, т.е. ЧАС. всплывающее окно .клик ....
Проблема VBA Excel GetObject - ошибка выполнения 91 - переменная объекта или переменная блока не установлены
Ошибка ответа: Ошибка выполнения 91: переменная объекта или переменная блока не установлена. Разрешение строки с MsgBox() : Sub CATMain() Dim xlApp As Excel.Application Set xlApp = VBA.GetObject(,...
Ошибка выполнения VBA '91' Переменная объекта или переменная блока не установлена
У меня есть около 12 000 строк данных, для которых мне нужны веб-сокеты. Этот код VBA работал нормально около 800 и после этого остановился. Теперь я не могу перезапустить его, потому что...
Поиск номера столбца дает ошибку «переменная объекта или переменная блока не установлена»
Я хочу найти номер столбца ячейки, в которой есть текст комментария в строке 1. В моем случае строки 1 и строки 2 объединены. Я использую следующую логику, чтобы найти номер столбца, но получаю ошибку времени выполнения...
Ошибка выполнения '91'. Переменная объекта или с неустановленной переменной блока
У меня есть макрос Excel, который отлично работает уже более года, пока вчера я не получил ошибку времени выполнения «91». Переменная объекта или с переменной блока не установлена. могу ли я подтвердить все...