2016-05-09 2 views
0

Я пытаюсь создать кнопку, которая позволит мне прикрепить файлы Word/Excel/PDF. Я прочитал кучу других статей и руководств, поэтому теперь у меня есть кнопка и макрос VBA, который дает мне диалоговое окно, чтобы перейти к моему файлу выбора. Файл можно выбрать и вставить в Excel.При вставке OLEObject (Word/XLS/PDF doc) в Excel, как я могу установить положение значка относительно кнопки вложения?

Проблема, с которой я столкнулась, заключается в том, чтобы получить положение встроенного файла, чтобы сидеть рядом с кнопкой, которую я создал. В настоящее время он по умолчанию всегда в левом верхнем углу активного листа, несмотря на все мои усилия на жесткий код другой позиции в

Так два вопроса:.

  1. Как установить позицию для OLEObject ?
  2. Есть ли способ идентифицировать ссылку на ячейку/позицию кнопки команды, а затем установить положение OLEObject относительно этого? Например, два столбца справа от кнопки.

Благодаря JK

Вот мой код до сих пор:

Sub AttachFile() 

'Identify the cell the command button is in and set the location for attachment icon to be 3 columns to the right 
Dim buttonName As String 
Dim buttonAddress As String 
Dim buttonLocation As Range 
Dim iconLocation As Range 

buttonName = ActiveSheet.Shapes(Application.Caller).Name 
buttonAddress = ActiveSheet.Shapes(buttonName).TopLeftCell.Address 
Set iconLocation = Range(buttonAddress).Offset(0, 3) 

'Browse for the file 
Dim vFile As Variant 
vFile = Application.GetOpenFilename("All Files,*.*", Title:="Find file to insert") 
If LCase(vFile) = "false" Then Exit Sub 

'Embed the selected file 
Dim attachment As OLEObject 
Set attachment = ActiveSheet.OLEObjects.Add(_ 
    Filename:=vFile, _ 
    Link:=False, _ 
    DisplayAsIcon:=True) 

'Reposition the icon to be next to the command button 
ActiveWindow.Zoom = 100 
With attachment 
    .Top = iconLocation.Top 
    .Left = iconLocation.Left 
End With 
ActiveWindow.Zoom = 70   
End Sub 

ответ

0

Я думаю, что у вас есть правильный подход. Попробуйте изменить свой код, чтобы что-то вроде этого

With attachment 
    .Top = cells("H89").top 
    .Left = cells("H89").left 
End With 

им не в настоящее время около VBA, но это было что-то вроде этого

+0

Спасибо Любош. Позиция встроенного файла переместилась из A1 - к сожалению, он еще не пошел на H89, но E93. – JKay85

+0

@ JKay85 Пожалуйста, обновите свой код, чтобы отразить то, что у вас есть на данный момент. – Rory

+0

Hi Rory - обновлен код в соответствии с запросом. – JKay85

 Смежные вопросы

  • Нет связанных вопросов^_^