例如打开某个路径下,带有ABC的文件,并且获取文件的名称.
我在C盘下有ABC-XXX,ABC-WWW,ABC-DDD这三个文件,我不知道ABC后面跟的是什么,但是我要打开带有ABC字符的EXCEL文件,那么请问VBA怎么写?
EXCEL VBA怎么打开不知道全名的文件
答案:3 悬赏:30 手机版
解决时间 2021-03-06 08:54
- 提问者网友:凉末
- 2021-03-05 10:28
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-03-05 11:22
建议不要直接打开所有包含指定字符的文件.
下面的代码会把找到的所有包含指定字符的文件名装入一个数组
显示出来让你选择打开一个你指定的.
Sub MyOpen()
Dim Ipath As String, Myfile, FileArr(), N As Integer
'选择在哪个文件夹中查找
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
Ipath = .SelectedItems(1)
End With
Myfile = Dir(Ipath & "\ABC*.XLS")
Do While Myfile <> ""
N = N + 1
ReDim Preserve FileArr(1 To N)
FileArr(N) = N & "." & Myfile
Myfile = Dir
Loop
If N < 1 Then
MsgBox "没有找到符合条件的文件!"
Exit Sub
End If
sfile = Application.InputBox(Join(FileArr, vbCrLf), "请输入要打开的文件序号:", Type:=1)
If sfile = False Then Exit Sub
Workbooks.Open (Ipath & "\" & Split(FileArr(sfile), ".")(1)) '打开选定序号的文件
End Sub
PS:关于获得已打开的工作薄的文件名
Sub test()
'获得激活工作薄的名称
a = ActiveWorkbook.Name
'获得这个工作薄的名称
b = ThisWorkbook.Name
'获得所有已打开的工作薄的名称
Dim wb As Workbook
For Each wb In Workbooks
c = wb.Name '监视C变量,C变量会逐个赋值为所有已打开的工作薄的名称
Next
End Sub
下面的代码会把找到的所有包含指定字符的文件名装入一个数组
显示出来让你选择打开一个你指定的.
Sub MyOpen()
Dim Ipath As String, Myfile, FileArr(), N As Integer
'选择在哪个文件夹中查找
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
Ipath = .SelectedItems(1)
End With
Myfile = Dir(Ipath & "\ABC*.XLS")
Do While Myfile <> ""
N = N + 1
ReDim Preserve FileArr(1 To N)
FileArr(N) = N & "." & Myfile
Myfile = Dir
Loop
If N < 1 Then
MsgBox "没有找到符合条件的文件!"
Exit Sub
End If
sfile = Application.InputBox(Join(FileArr, vbCrLf), "请输入要打开的文件序号:", Type:=1)
If sfile = False Then Exit Sub
Workbooks.Open (Ipath & "\" & Split(FileArr(sfile), ".")(1)) '打开选定序号的文件
End Sub
PS:关于获得已打开的工作薄的文件名
Sub test()
'获得激活工作薄的名称
a = ActiveWorkbook.Name
'获得这个工作薄的名称
b = ThisWorkbook.Name
'获得所有已打开的工作薄的名称
Dim wb As Workbook
For Each wb In Workbooks
c = wb.Name '监视C变量,C变量会逐个赋值为所有已打开的工作薄的名称
Next
End Sub
全部回答
- 1楼网友:廢物販賣機
- 2021-03-05 13:37
Sub 读取文件名()
myPath = "K:\Movie" '把文件路径定义给变量
n = 1
myFile = Dir(myPath & "\*.*")
Do While myFile <> ""
Cells(n, 1) = myFile
myFile = Dir '找寻下一个文件
n = n + 1
Loop
End Sub
这样可以把所有文件名读出来,其他的你可以看着再改改
- 2楼网友:西岸风
- 2021-03-05 12:26
vba中用workbooks("文件名")即可访问到打开的工作簿 前提是已经打开的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯