我本来打算用vba来实现某些文件夹下寻找特定文件进行修改,替换操作的。
可是已经搞定替换部分代码了,调试的时候,却发现DIR却出了问题,始终无法定位到那个文件。
我又用msgbox输出了该目录下的所有文件,那个特定的文件却无法输出(但是明显是可见的),其他文件都可以正常输出,我又查看了该特定文件的属性。没发现问题。
在网络上搜索,好像没有这个问题的介绍,所以请高人们给予指点,这个是什么原因造成的?该怎么解决?
哦,经过不断尝试,我终于发现大概是什么原因了。
发现时dir查询的路径下只有一个文件的时候,就无法显示????这是为什么啊???
建议解决方案:
1.怀疑文件属性,看看是不是-h属性的。
2.看看字符长度,印象中dos命令都有字符限制的。
3.切换到cmd模式,在该目录下运行dir,看看能否看到这个文件。
4.看看是否有特殊字符在里边。
5.印象中应该把0变成"",试试。
6.看看你没有输出的文件和已经输出的文件的扩展名是否一致,不一样的是出不来的追问
1.怀疑文件属性,看看是不是-h属性的。
2.看看字符长度,印象中dos命令都有字符限制的。
3.切换到cmd模式,在该目录下运行dir,看看能否看到这个文件。
4.看看是否有特殊字符在里边。
5.印象中应该把0变成"",试试。
6.看看你没有输出的文件和已经输出的文件的扩展名是否一致,不一样的是出不来的追问
你好,多谢了。不过我刚尝试了把那个原来的文件复制后,可以输出复制后的文件,而原来的文件却无法输出。具体见附图。DOS下也查看了文件的属性,文件时-A的。然后复制后可以输出,应该可以排除是字符或者文件长度的问题吧。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-12-03
你代码中第一次用Dir时就找到了一个文件,Loop里用Dir时已经是第二个文件了。
可以把Loop中第一句和第二句换下位置,Loop之前的Dir前也加上name1=。追问
可以把Loop中第一句和第二句换下位置,Loop之前的Dir前也加上name1=。追问
非常感谢了。。
可是这么多位大侠,我都不知道该怎么给分哦。。
第2个回答 2012-12-03
没怎么折腾VBA,我只用VB6。
估计是你的处理过程中遗漏了一个,不是开始那个就是最后那个。
没代码没真相
与DIR无关追问
估计是你的处理过程中遗漏了一个,不是开始那个就是最后那个。
没代码没真相
与DIR无关追问
你好,如图,上面是sub abc按F8后执行的结果截图,只能显示其复制的文件,始终无法显示原始那个文件。请指示。。。
第2个回答 2012-12-03
检查的EXCEL文件,是不是后缀有 xls 和 xlsx 之分
看看是不是文件类型不一样呢追问
看看是不是文件类型不一样呢追问
哦。dir的用法是输出对应文件夹下的所有文件
第一次必须指定路径,后面就不用赋参数,可以直接用dir来去得文件夹下对应的文件名称(包括后缀)。
比如:
dir(c:\)
do
string name1=dir
while until name1=0
通过上面的可以得到name1,就是C:\目录下的所有文件,
第3个回答 2012-12-03
代码有问题,私信传给你。本回答被提问者采纳