Проблемы с макросом Excel VBA OLEObjects.add

РЕДАКТИРОВАТЬ:

Я начал новую книгу и разорвал исходный код для тестирования в новой среде. Кажется, что ни один из методов OLEObjects.add не работает даже в этой очищенной среде. Я начинаю думать, что этот метод и параметры в основном делают что-то иное, чем то, что, как я думаю, они делают на основе их документации. Я включил проанализированный код ниже вместе с изображением того, как выглядит прикрепление файла .pdf.

  Sub AttachDocument () 'создать строку расположения ячейкиDim celllocation As Stringcelllocation =  ("D6") 'Выберите ячейку, в которую вы хотите поместить attachmentRange (celllocation). Select'Get file path'fpath = Application.GetOpenFilename ("All Files, *. *", Title: = "Select file")  'Если LCase (fpath) = "false", то выйдите из Subfpath = "C:  Users  Username  Desktop  2019W2.pdf"' 'Вставьте fileWorksheets ("Sheet1"). OLEObjects.Add Filename: = fpath, Link: = False,  DisplayAsIcon: = True, IconFileName: = "EXCEL.EXE" End Sub  

Я просто не понимаю, почему не работают параметры. Любая помощь приветствуется.

Исходное сообщение:

У меня есть код, который добавляет OLEObject на лист в определенной ячейке. Он работает, но я не могу получить параметры для метода OLEObjects.add, чтобы что-либо сделать. Единственное, что кажется работающим, — это «Имя файла». Независимо от того, как я определяю какие-либо другие параметры, поведение макроса не меняется; Я даже не уверен, что параметр «Связанный» работает, а значок всегда зависит от типа загруженного файла, но ведет себя не так, как ожидалось (например, в документах Word не отображается значок слова, а большой пустой/белый квадрат). В конечном счете, я хочу установить для значка общий значок и определить его размер. Что я здесь делаю не так?

  Sub AttachDocument () 'Убедитесь, что выделена строка таблицы, если не конец макроса, также проверьте выделение больше, чем  количество строк в таблице, если да, конец макроса Dim tbl As ListObject Set tbl = ActiveSheet.ListObjects ("RenewablesTable") Если Range ("M3"). Value  tbl.  DataBodyRange.Rows.Count Then Else 'создать строку расположения ячейки Dim cellnum As Integer, celllocation As String cellnum = Range ("M3"). Value + 8 celllocation = ("M" & cellnum)' Выберите ячейку, в которой вы хотите  поместите вложение Range (celllocation) .Select 'проверьте, есть ли в ячейке объект, если он завершает макрос If CheckCellforObject (celllocation)> 0 Then Else' Получить путь к файлу fpath = Application.GetOpenFilename ("All Files, *. *",  Заголовок: = "Выбрать файл") Если LCase (fpath) = "false", затем выйти из подпрограммы 'Вставить рабочие листы («Возобновляемая энергия»). Снять защиту «паролей» рабочих листов («Возобновляемые источники энергии»). OLEObjects. Добавьте имя файла: = fpath, Link: = False, DisplayAsIcon: = True, IconFileName: = "excel.exe" Рабочие листы ("Возобновляемые источники энергии"). Защитите "пароль" End If End IfEnd Sub  

Оцените статью
somehone.ru
Добавить комментарий