Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4394|回复: 5

[已解决]Excel提取文件名或文件

[复制链接]
发表于 2016-3-24 18:58 | 显示全部楼层 |阅读模式
本帖最后由 jmkite 于 2016-3-31 23:20 编辑

原贴http://www.excelpx.com/forum.php ... 2&page=1#pid4017177
由于原贴显示已解决问题,可能导致没有人看贴,所以我另起贴,望版主明白,谢谢!
我的环境是Win7+Office2010,点“提取文件名”无用,无法列出文件夹中下所选扩展名的文件名,点“更改文件名”,在没有文件时,也会提示共更改一个文件,只填一个文件名时,无法提取出文件,要两个或以上才行。有那位高手可以修正下程序不,并且提取文件时,我想要复制,不是现在的剪切。谢谢!
最佳答案
2016-3-27 16:54
jmkite 发表于 2016-3-25 09:33
谢谢,可以提取文件名了,不过我想提取出来的文件名不要扩展名,研究你的代码,研究不到在那修改,请问如 ...

Sub 提取文件名_单击()
    Dim Fso As Object, Drive As Object
    Dim Fn As String, Fname As Object, Num As Integer
    Dim subName As String, Disc As String
    subName = [a1]
    Disc = [a2]
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set folder = Fso.GetFolder(Disc)
    For Each Fname In folder.Files
        Fn = Fname.Name
        If Fn Like "*." & subName Then
            Num = Num + 1
            Cells(Num + 3, 1) = Split(Fn, ".")(0)
        End If
    Next
End Sub

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-3-24 20:31 | 显示全部楼层
可以用:CreateObject("Scripting.FileSystemObject") 方法 或 DIR 文件,我给你试试
回复

使用道具 举报

发表于 2016-3-24 20:54 | 显示全部楼层
Sub 提取文件名_单击()
    Dim Fso As Object, Drive As Object
    Dim Fn As String, Fname As Object, Num As Integer
    Dim subName As String, Disc As String
    subName = [a1]
    Disc = [a2]
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set folder = Fso.GetFolder(Disc)
    For Each Fname In folder.Files
        Fn = Fname.Name
        If Fn Like "*." & subName Then
            Num = Num + 1
            Cells(Num + 4, 1) = Fn
        End If
    Next
End Sub
回复

使用道具 举报

 楼主| 发表于 2016-3-25 09:33 | 显示全部楼层
wanao2008 发表于 2016-3-24 20:54
Sub 提取文件名_单击()
    Dim Fso As Object, Drive As Object
    Dim Fn As String, Fname As Object ...

谢谢,可以提取文件名了,不过我想提取出来的文件名不要扩展名,研究你的代码,研究不到在那修改,请问如何修改。提取出来后的文件名从A5开始列出,我想从A4开始列出。
回复

使用道具 举报

 楼主| 发表于 2016-3-25 09:36 | 显示全部楼层
wanao2008 发表于 2016-3-24 20:54
Sub 提取文件名_单击()
    Dim Fso As Object, Drive As Object
    Dim Fn As String, Fname As Object ...

还有一楼中的第二个问题,我也研究不出如何修改这个小Bug,本人初学,请多多指教。
回复

使用道具 举报

发表于 2016-3-27 16:54 | 显示全部楼层    本楼为最佳答案   
jmkite 发表于 2016-3-25 09:33
谢谢,可以提取文件名了,不过我想提取出来的文件名不要扩展名,研究你的代码,研究不到在那修改,请问如 ...

Sub 提取文件名_单击()
    Dim Fso As Object, Drive As Object
    Dim Fn As String, Fname As Object, Num As Integer
    Dim subName As String, Disc As String
    subName = [a1]
    Disc = [a2]
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set folder = Fso.GetFolder(Disc)
    For Each Fname In folder.Files
        Fn = Fname.Name
        If Fn Like "*." & subName Then
            Num = Num + 1
            Cells(Num + 3, 1) = Split(Fn, ".")(0)
        End If
    Next
End Sub

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 11:27 , Processed in 0.278159 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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