2019年2月22日摘自https://blog.csdn.net/henryghx/article/details/26973319,舍无由深表感谢。
2019年2月22日舍无由作了小改动,在Excel 2013中亲测可用。
Option Explicit '所有变量必须先定义后使用,强制显式声明模块中的所有变量
'VBA打开文件选择框、取得文件全路径与文件名的代码。
Sub selectExcelfile()
Dim fileNameObj As Variant
Dim aFile As Variant '数组,提取文件名fileName时使用
'打开文件对话框返回的文件名,是一个全路径文件名,其值也可能是False,因此类型为Variant
Dim fullName As String
Dim fileName As String '从FileName中提取的路径名
Dim i As Integer
Dim ExcelFullPathAndName As String, workbookName As String
fileNameObj = Application.GetOpenFilename("Excel 文件 (*.xls*),*.xls*")
'调用Windows打开文件对话框
If fileNameObj <> False Then '如果未按“取消”键
aFile = Split(fileNameObj, "\")
fileName = aFile(UBound(aFile)) '数组的最后一个元素为文件名
fullName = aFile(0)
For i = 1 To UBound(aFile) '循环合成全路径
fullName = fullName & "\" & aFile(i)
Next
Else
MsgBox "您已取消,未选择文件!"
End
End If
'得到Excel全路径
ExcelFullPathAndName = fullName
'得到Excel文件名
workbookName = fileName
MsgBox "您选择的全路径式文件名是: " & vbCr & ExcelFullPathAndName
End Sub
Excel 2013中,运行效果如下:
网友评论