提示用户在Excel中选择单元格选择文件路径

时间:2013-08-20 22:19:04

标签: excel vba validation

我有一个工作表,可以将一堆文件下载到单元格中用户指定的位置。我想要做的是为此单元格添加验证,以便在单击它时,文件选择窗口打开,用户可以指定所需的位置。这甚至可能吗?我知道它可以通过按钮触发的宏来完成,但我真的希望它能像其他类型的验证一样工作,例如下拉菜单。

任何指向正确方向的人都会非常感激......非计算机类型在输入错误自由路径时遇到的麻烦比你想象的要多。

1 个答案:

答案 0 :(得分:2)

将其粘贴在Workbook对象中。或者,如果它是特定工作表,则将其粘贴到工作表对象中并将事件更改为相关工作表1 - 这将节省一些CPU周期,因为它只会在相关工作表上触发事件。

Public SelectedPath As String
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim desiredCell As Range
    Set desiredCell = Worksheets("Sheet1").Cells(1, 1) 'whatever
    If Target.Address(external:=True) = desiredCell.Address(external:=True) Then
        With Application.FileDialog(msoFileDialogFolderPicker)
            .AllowMultiSelect = False
            .ButtonName = "Select destination"
            .Title = "Select destination folder"
            .Show
            If .SelectedItems.Count > 0 Then
                SelectedPath = .SelectedItems(1)
                Target.Value = SelectedPath
            End If
        End With
        'do some more stuff or let your other code access the SelectedPath field
    End If
End Sub