据说workbooks.open不能用通配符。
文件夹里都是月报表,但不一定每月都有。
我知道:
1、文件的路径,Z:\2006\
2、文件的大致名称:是严格按年月日来命名的,格式是2006-08-**.xls 或者2006-08-**.xlsx
3、每个月最多只有一个文件,也就是只有一个2006-08-**.xls(或者2006-08-**.xlsx)
4、字符串,整形变量和循环(for i=1 to X next i)操作的基本规则
问题是:怎么用按顺序打开它们?中间不报错
http://pan.baidu.com/s/1hqu5C4c
å¦æè½ç¡®ä¿æ件夹ä¸ç±»ä¼¼2006-08-**.xls æè
2006-08-**.xlsxçæ件åªæä¸ä¸ªï¼å¯ç¨æå¦ä¸ä»£ç
Dim yy, mm, pth, fn, i
yy = [f3]
pth = "D:\" & yy & "\"
For i = [f4] To 12
fn = Dir(pth & yy & "-" & Format(i, "00") & "-*.*")
If fn <> "" Then
Application.Workbooks.Open pth & fn
'å¨æ¤æ·»å æä½ä»£ç
Application.Workbooks(fn).Close True 'å¦è¦æå¨å ³éæ件å é¤æ¬è¡
End If
Next
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-06-13
Sub OpenAllExcel()
Dim fPath As String, fName As String
fPath = "Z:\2006\"
fName = Dir(fPath & "*.xls")
Do While fName <> ""
Application.Workbooks.Open fPath & fName
'这里可以添加对每个打开文件的操作。
fName = Dir
Loop
End Sub
Dim fPath As String, fName As String
fPath = "Z:\2006\"
fName = Dir(fPath & "*.xls")
Do While fName <> ""
Application.Workbooks.Open fPath & fName
'这里可以添加对每个打开文件的操作。
fName = Dir
Loop
End Sub
正常来说,如果你的文件名那么有规律,程序给出的就是按照日期排序的文件,不用特意再排序了。
如果有特殊情况,可以再使用排序。排序后再依次打开文件。
本回答被网友采纳第2个回答 2015-06-12
把文件名放到字典里,变成数组后,就可以用like比较了吧追问
那请给我2000到2014每月最后一天的辞典,并告诉怎么用好吗?很初级的读码能力。谢谢!
追答你的文件我没太看懂啊。