标题:[求助]关于dir()函数的一个奇怪现象?
只看楼主
cjs_96001
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-12-20
 问题点数:0 回复次数:2 
[求助]关于dir()函数的一个奇怪现象?
'程序想要实现的功能是逐个修改目录strfile下excel文件的格式,下面是部分代码
'strfile -----excel文件所在的目录
'excelapp-----excel 的Application 对象
'modiformat-------修改格式的子程序
filname = Dir(strfile + "\*.xls")
Do While filname <> ""
excelapp.Workbooks.Open strfile + "\" + filname
Set actsheet = excelapp.ActiveSheet
Call modiformat
excelapp.Workbooks(1).Save
excelapp.Workbooks(1).Close
filname = Dir
Loop

'运行上述程序时出现了一个奇怪的现象:在目录下只有一个文件的情况下,本来第二次调用dir时应返回""(空字符串)。不知为什么,运行程序时第二次的无参dir返回的文件名之与第一次相同,导致循环不能结束。如果将excelapp.Workbooks(1).Save去掉,则程序运行正常。到底dir以什么标准来判断目录中的文件已经查找?
搜索更多相关主题的帖子: dir 函数 现象 
2005-12-20 15:34
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
得分:0 
没出现你说的情况。

天津网站建设 http://www./
2005-12-20 21:33
cjs_96001
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-12-20
得分:0 

我都糊涂了,一会对,一会错!!!感觉如果把目录放深一点,出错的几率要大些。

大家可以试一下,将Call modiformat去掉也会出现同样的问题。
我用的是office2003。
Dim excelapp As Excel.Application
Private Sub cmdfolder_Click()
Dim strfolder As String,strfile As String
strfolder = "F:\工程数据\aaaa\111"
On Error Resume Next
Set excelapp = GetObject(, "excel.Application")
If Err Then
Err.Clear
Set excelapp = CreateObject("excel.Application")
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If
excelapp.Visible = True
strfile = Dir(strfolder + "\*.xls")
Do While strfile <> ""
excelapp.Workbooks.Open strfolder + "\" + strfile
excelapp.Workbooks(1).Save
excelapp.Workbooks(1).Close
strfile = Dir
Loop
MsgBox "OK", vbOKOnly + vbInformation, "Notice:"
End Sub

[此贴子已经被作者于2005-12-21 11:33:50编辑过]

2005-12-21 11:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-39091-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.028889 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved