ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4408|回复: 10

[求助] dir 取路径后,路径里有“?”的怪问题!搜很多贴无解

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-2-17 21:58 | 显示全部楼层 |阅读模式
本帖最后由 ljp19000 于 2013-2-18 20:10 编辑

用dir()方法取路径后,路径里有时会出现“?”,出现“?”的位置我估计是一个软回车之类的chr(),用这样的路径使用getsttr函数时就会报错,即使去除“?”后,使用getsttr函数依然报错。

myfilename = Dir(“d:\”, vbDirectory)
    Do While Len(myfilename) > 0
        If myfilename <> "." And myfilename <> ".." Then
            i2 = GetAttr((“d:\” & myfilename)
            If i2 = 16 Or i2 = 17 Then
               
            End If
        End If
        myfilename = Dir()
    Loop
下面的附件,就是会出现这样错误路径的文件夹,表面看,这个文件夹的文件名是“(&#8300;2012.1.15)”,但是用dir方法取路径时,这个文件夹显示“(?&#8300;2012.1.15)”,多一个问号

大家可以下载附件看看,显示“?”的位置确实有个东西,但是看不见,重命名,用键盘左右移动时,就会发现显示“?”的地方是有的东西的

不仅是我存在这个问题,下面的这个帖子,问题和我的一摸一样
http://club.excelhome.net/forum.php?mod=viewthread&tid=792061

虽然用fso方法取路径就不存在这个问题,但我我不想用fso





(2012.1.15).zip

172 Bytes, 下载次数: 23

TA的精华主题

TA的得分主题

发表于 2013-2-17 22:03 | 显示全部楼层
你们懂了吗,反正我是没懂

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-17 22:11 | 显示全部楼层
№①布鲑鲑 发表于 2013-2-17 22:03
你们懂了吗,反正我是没懂

我改过了,您再看看

TA的精华主题

TA的得分主题

发表于 2013-2-17 22:15 | 显示全部楼层
估计是 想问 怎么避免 使用这个 命令  在搜索 文件路径的时候  显示?  这个问题。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-17 22:17 | 显示全部楼层
huaimiao781 发表于 2013-2-17 22:15
估计是 想问 怎么避免 使用这个 命令  在搜索 文件路径的时候  显示?  这个问题。

是的,但是去掉了“?”之后的路径,也不能使用getattr

TA的精华主题

TA的得分主题

发表于 2013-2-17 23:13 | 显示全部楼层
楼主 有测试过 VB 工程 的 运行结果吗?  有可能 这只是 EXCEL 中的 一个BUG 。  先看看 TXT 显示的结果 是否正确吧!然后再来查原因。

TA的精华主题

TA的得分主题

发表于 2013-2-17 23:35 | 显示全部楼层
?的问题你能解决,那么就不成问题。
不能用getattr取得值是因为你的文件不带路径,造成找不到文件
试试
  1. Path = "d:"
  2. myfilename = Dir(Path, vbDirectory)
  3. Do While Len(myfilename) > 0
  4.     If myfilename <> "." And myfilename <> ".." Then
  5.         i2 = GetAttr(TextBox1 & Path & myfilename)
  6. 。。。。。。。。
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-18 20:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 ljp19000 于 2013-2-18 20:12 编辑
huaimiao781 发表于 2013-2-17 23:13
楼主 有测试过 VB 工程 的 运行结果吗?  有可能 这只是 EXCEL 中的 一个BUG 。  先看看 TXT 显示的结果 是 ...


显示的正确的,?的位置确实有个东西,但是看不见,并且不识别才出现“?”,你可以下载我的附件,重命名,用键盘左右移动时,就会发现是有的东西的

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-18 20:07 | 显示全部楼层
ccwan 发表于 2013-2-17 23:35
?的问题你能解决,那么就不成问题。
不能用getattr取得值是因为你的文件不带路径,造成找不到文件
试试

不好意思,这是我代码的节选,我没粘对。即使是带全部路径也没有用。

TA的精华主题

TA的得分主题

发表于 2013-2-18 21:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我猜测楼主电脑的操作系统的语言选项设置可能存在一定的问题。对于非 Unicode 码的支持或许没有正确设置,所以对于全角字符会以 ?(包括汉字、中文标点符号等等)来代替。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-20 20:31 , Processed in 0.033400 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表