我有一个工作表,可以将一堆文件下载到用户在单元格中指定的位置。我想做的是向该单元格添加验证,以便在单击它时打开文件选择窗口,并且用户能够指定所需的位置。这甚至可能吗?我知道它可以通过按钮触发的宏来完成,但我真的希望它更像其他类型的验证一样工作,例如下拉菜单。
任何指向正确方向的人都将不胜感激……非计算机类型在输入无错误路径时遇到的麻烦比您想象的要多。
我有一个工作表,可以将一堆文件下载到用户在单元格中指定的位置。我想做的是向该单元格添加验证,以便在单击它时打开文件选择窗口,并且用户能够指定所需的位置。这甚至可能吗?我知道它可以通过按钮触发的宏来完成,但我真的希望它更像其他类型的验证一样工作,例如下拉菜单。
任何指向正确方向的人都将不胜感激……非计算机类型在输入无错误路径时遇到的麻烦比您想象的要多。
将其粘贴在 Workbook 对象中。或者,如果它是特定工作表,则将其粘贴在工作表对象中并将事件更改为相关工作表之一 - 这将节省一些 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