yjnick 发表于 2006-10-26 16:13:00

【求助】关于取文件名的问题

<P>我想用EXCEL的VBA取一个指定目录下所有文件的文件名到Excel表中至第一列,基本上文件都是CAD文件,不知道怎么取,有没有相应的代码段?谢谢</P>

xcl0_0 发表于 2006-10-26 16:38:00

<P>用 vb的 dir 函数</P>
<P>例子:</P><PRE><CODE>Dim MyFile, MyPath, MyName

' </CODE>返回“<CODE>WIN.INI</CODE>”<CODE> </CODE>(如果该文件存在)。
<CODE>MyFile = Dir("C:\WINDOWS\WIN.ini")</CODE>   

<CODE>' </CODE>返回带指定扩展名的文件名。如果超过一个<CODE> *.ini </CODE>文件存在,
<CODE>' </CODE>函数将返回按条件第一个找到的文件名。
<CODE>MyFile = Dir("C:\WINDOWS\*.ini")</CODE>

<CODE>' </CODE>若第二次调用<CODE> Dir </CODE>函数,但不带任何参数,则函数将返回同一目录下的下一个<CODE> *.ini </CODE>文件。
<CODE>MyFile = Dir</CODE>

<CODE>' </CODE>返回找到的第一个隐式<CODE> *.TXT </CODE>文件。
<CODE>MyFile = Dir("*.TXT", vbHidden)</CODE>

<CODE>' </CODE>显示<CODE> C:\ </CODE>目录下的名称。
<CODE>MyPath = "c:\"   ' </CODE>指定路径。
<CODE>MyName = Dir(MyPath, vbDirectory)</CODE>   <CODE>' </CODE>找寻第一项。
<CODE>Do While MyName &lt;&gt; ""   ' </CODE>开始循环。
   <CODE>' </CODE>跳过当前的目录及上层目录。
   <CODE>If MyName &lt;&gt; "." And MyName &lt;&gt; ".." Then</CODE>
<CODE>      ' </CODE>使用位比较来确定<CODE> MyName </CODE>代表一目录。
      <CODE>If (GetAttr(MyPath &amp; MyName) And vbDirectory) = vbDirectory Then</CODE>
<CODE>         Debug.Print MyName   ' </CODE>如果它是一个目录,将其名称显示出来。
      <CODE>End If</CODE>
<CODE>   End If</CODE>
<CODE>   MyName = Dir   ' </CODE>查找下一个目录。
<CODE>Loop</CODE>
</PRE>
<P>&nbsp;</P>
页: [1]
查看完整版本: 【求助】关于取文件名的问题