フォーム入力 spredhseet Excel スプレッドシート内でファイルをアップロードするための 1 つのコマンド ボタンが割り当てられている Excel フォームを作成しました。
このコードの問題は、ボタンクリックで使用していたのですが、コマンドボタンクリックでこれを使用したいということです。 Excel フォーム 以下のコードでは、パスはアクティブな範囲からの選択として定義されていません。要件は、Excel フォームのエントリに基づいて修正される Excel パスです。
Private Sub CommandButton1_Click()
Worksheets("DataBase").Range("L3").Select
Dim fd As FileDialog
Dim selectedFile As String
Dim docObj As OLEObject
Dim destCell As Range
If IsError(Application.Caller) Then
MsgBox "The Insert_Document macro must be called from a button click, not directly.", vbCritical
Exit Sub
End If
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
.Title = "Select document to insert"
.Filters.Clear
.Filters.Add "excel documents", "*.xlsx"
.Filters.Add "All files", "*.*"
If Not .Show Then Exit Sub
selectedFile = .SelectedItems(1)
End With
Set destCell = ActiveSheet.Buttons(Application.Caller).TopLeftCell.Offset(, -1) 'This is where i am getting error
Set docObj = ActiveSheet.OLEObjects.Add(Filename:=selectedFile, Link:=False, DisplayAsIcon:=False)
With docObj
.Name = Left(Mid(selectedFile, InStrRev(selectedFile, "\") + 1), 32)
.Top = destCell.Top
.Left = destCell.Left
.Width = destCell.Width
.Height = destCell.Height
End With