0

フォーム入力 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
    
4

0 に答える 0