作者waiter337 (给开司一罐苏格登)
看板Office
标题[问题] vba dir 关键字查档名
时间Mon Jan 2 07:41:51 2017
资料夹之中可能会有n个档
譬如
20161230A0001.xlsx
20161231A0001.xlsx
20161231A0002.xlsx
20161231A0003.xlsx
20161231A0005.xlsx
20161231A0006.xlsx
20170101A0001.xlsx
20170101A0002.xlsx
目前的code
本档名 = ActiveWorkbook.Name
本路径 = ActiveWorkbook.Path
结束日查寻 = "20161231" & "A"
myfile = Dir(本路径, vbDirectory)
While myfile <> ""
If MyName <> "." And MyName <> ".." Then '不找其他的资料夹
myfile1 = Left(myfile, 9)
If myfile1 Like 结束日查寻 Then '假如前面都是20161231就会搜寻
查寻名 = myfile '其实这里我有疑问(疑问2)
End If
End If
myfile = Dir 'dir被呼叫时,会跳下一个档案
Wend '<--关键在回圈时,DIR又会回溯跳回去原来那个档名的问题(疑问1)
我想要查寻20161231当天最後一个档案的名称
也就是20161231A0006.xlsx这个名称
当我之後新的档案要建档时
我会用"查寻名"在+1
变成20161231A0007
档案在同一个资料夹下
查寻名 是变数
这个问题不知道该如何解
关於疑问2的问题
我目前是要最後一个当日流水号最大的档名
我猜想如果照顺序,"查寻名"变数应该也会被洗成最後一个
所以我猜应该是不用丢入阵列或Range里面再分析
求大大支援
参考网址
http://www.excelpx.com/home/show.aspx?id=10081
补充
我在网上有看到有人会再多用一个if跳过自己正在执行的档案
我的执行档案跟查寻档案都在同一个资料夹内
不知道是否也有这样的影响?
不过档名是完全不同的,执行用的excel档名没有任何数字
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.35.158.244
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1483314115.A.AE8.html
※ 编辑: waiter337 (114.35.158.244), 01/02/2017 07:43:29
※ 编辑: waiter337 (114.35.158.244), 01/02/2017 07:44:43
※ 编辑: waiter337 (114.35.158.244), 01/02/2017 07:47:09
※ 编辑: waiter337 (114.35.158.244), 01/02/2017 07:59:16
※ 编辑: waiter337 (114.35.158.244), 01/02/2017 07:59:55
※ 编辑: waiter337 (223.139.147.145), 01/02/2017 08:06:07
我在彰化那个网页找到的code
If Right(strNowPath, 1) = "\" Then
strFileName = Dir(strNowPath & strFileExt, vbDirectory)
strFileNameTime = strNowPath
Else
strFileName = Dir(strNowPath & "\" & strFileExt, vbDirectory)
strFileNameTime = strNowPath & "\"
End If
阿阿阿阿 我当初以为这行是没用处的 xddddd
晚点试成功200p
※ 编辑: waiter337 (114.35.158.244), 01/02/2017 17:49:47
不过用大大的应该就够了 感谢
※ 编辑: waiter337 (114.35.158.244), 01/02/2017 18:00:41