excel获取文件名宏|如何用excel宏提取文件名生成目录

excel获取文件名宏|如何用excel宏提取文件名生成目录的第1张示图

1. Excel宏中导入指定目录下所有文件名

Sub 循环文件()Dim Path$,filelist$ '字符串,File可以定义为File$Path = "D:\电话信息\" '保存文件的目录, /////可根据实际存放的路径自行修改本行File = Dir(Path & "*.xls") '第1个工作簿文件Do While (File <> "") And File <> ThisWorkbook.Namefilelist=filelist & Left(File, Len(File) – 4)& ".txt," 'Left是取File的前面部分,这里是去掉扩展名".xls"四个字符 File = DirLoopend sub

2. Excel中VBA提取文件夹名称的方法

文章介绍excel中使用vba提取文件名的操作步骤。根据需要自行修改vba提取文件名的路径和存放单元格即可。在excel中使用VBA编写代码,可以轻松的提取某个文件夹下面的所有文件名。比如笔者在F盘下面建立了一个文件夹,文件夹的名称是:office教程网,现在想将“office教程网”这个文件夹下面的所有文件名提取出来放在当前工作表的C列。具体的vba提取文件名的操作如下:1.按下ALT+F11,打开VBE编辑器。2.执行“插入——模块”,插入模块1。 3.在右边的代码编辑窗口,复制下面的代码,然后单击“绿色箭头”或者快捷键F5键,运行代码。Private Sub vba提取文件名() Dim FileName As String Dim i As Long FileName = Dir("F:\office教程网\*.*") i = 0 Range("C:C").ClearContents Do While FileName > "" i = i + 1 Cells(i, 3) = FileName FileName = Dir LoopEnd Sub 4.关闭VBE窗口,回到工作表中,可以在C列看到F盘“office教程网”文件夹下面所有的文件名全部罗列在C列了。 关于上面的vba提取文件名的代码,请在实际使用时,根据需要修改提取文件名的路径(F:\office教程网\*.*),以及存放在C列的位置(Cells(i, 3))。

3. 如何用excel宏提取文件名生成目录

写了一小部分,可以获取文件夹下所有文件名称,路径,大小,创建日期,不知道能否对你有帮助。1.添加VBA代码,选择新插入的模块后,插入以下代码Sub getpath() Range("A2:C1000").ClearContents '清空A2:C1000列 On Error Resume Next Dim shell As Variant Set shell = CreateObject("Shell.Application") Set filePath = shell.BrowseForFolder(&O0, "选择文件夹", &H1 + &H10, "") '获取文件夹路径地址 Set shell = Nothing If filePath Is Nothing Then '检测是否获得有效路径,如取消直接跳出程序 Exit Sub Else gg = filePath.Items.Item.Path End If Set obj = CreateObject("Scripting.FileSystemObject") '定义变量 Set fld = obj.getfolder(gg) '获取路径 For Each ff In fld.Files '遍历文件夹里文件 m = m + 1 Cells(m + 1, 1) = ff.Name Cells(m + 1, 2) = ff.Path Cells(m + 1, 3) = ff.Size Cells(m + 1, 4) = ff.DateCreated NextEnd Sub2.运行宏(alt+F8),宏的名称为getpath

4. 求用excel宏批量提取文件夹中.atm文件的文件名的程序

附件中有样本

代码如下

Sub取文件名()DimkAsLong,fnAsString,pTAsStringWithApplication.FileDialog(msoFileDialogFolderPicker).AllowMultiSelect=False.ShowIf.SelectedItems.Count=0ThenMsgBox"未选择文件夹"ExitSubElsepT=.SelectedItems(1)EndIfEndWithfn=Dir(pT&"*.atm")DoWhilefn<>""k=k+1Cells(k,"A")=Left(fn,Len(fn)-4)fn=DirLoopEndSub

5. excel 遍历文件夹 宏命令

VBA遍历文件夹常用有三种方法,这三种方法中,filesearch不适合2007和2010版本,而且速度比较慢,递归法速度也慢。只有用DIR加循环的方法,速度飞快。下面是三种方法的代码:1、filesearch法Sub test3()Dim wb As WorkbookDim i As LongDim tt = Timer With Application.FileSearch '调用fileserch对象 .NewSearch '开始新的搜索 .LookIn = ThisWorkbook.path '设置搜索的路径 .SearchSubFolders = True '搜索范围包括 LookIn 属性指定的文件夹中的所有子文件夹 .Filename = "*.xls" '设置搜索的文件类型 ' .FileType = msoFileTypeExcelWorkbooks If .Execute() > 0 Then '如果找到文件 For i = 1 To .FoundFiles.Count 'On Error Resume Next Cells(i, 1) = .FoundFiles(i) '把找到的文件放在单元格里 Next i Else MsgBox "没找到文件" End If End With MsgBox Timer – tEnd Sub2、递归法 Sub Test()Dim iPath As String, i As LongDim tt = Timer With Application.FileDialog(msoFileDialogFolderPicker) .Title = "请选择要查找的文件夹" If .Show Then iPath = .SelectedItems(1) End If End With If iPath = "False" Or Len(iPath) = 0 Then Exit Sub i = 1 Call GetFolderFile(iPath, i) MsgBox Timer – t MsgBox "文件名链接获取完毕。", vbOKOnly, "提示" End SubPrivate Sub GetFolderFile(ByVal nPath As String, ByRef iCount As Long)Dim iFileSys'Dim iFile As Files, gFile As File'Dim iFolder As Folder, sFolder As Folders, nFolder As Folder Set iFileSys = CreateObject("Scripting.FileSystemObject") Set iFolder = iFileSys.GetFolder(nPath) Set sFolder = iFolder.SubFolders Set iFile = iFolder.Files With ActiveSheet For Each gFile In iFile ' .Hyperlinks.Add anchor:=.Cells(iCount, 1), Address:=gFile.path, TextToDisplay:=gFile.Name iCount = iCount + 1 Next End With '递归遍历所有子文件夹 For Each nFolder In sFolder Call GetFolderFile(nFolder.path, iCount) NextEnd Sub 3、dir循环法Sub Test() '使用双字典,旨在提高速度 Dim MyName, Dic, Did, i, t, F, TT, MyFileName 'On Error Resume Next Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(0, "选择文件夹", 0, 0) If Not objFolder Is Nothing Then lj = objFolder.self.path & "\" Set objFolder = Nothing Set objShell = Nothing t = Time Set Dic = CreateObject("Scripting.Dictionary") '创建一个字典对象 Set Did = CreateObject("Scripting.Dictionary") Dic.Add (lj), "" i = 0 Do While i < Dic.Count Ke = Dic.keys '开始遍历字典 MyName = Dir(Ke(i), vbDirectory) '查找目录 Do While MyName <> "" If MyName <> "." And MyName <> ".." Then If (GetAttr(Ke(i) & MyName) And vbDirectory) = vbDirectory Then '如果是次级目录 Dic.Add (Ke(i) & MyName & "\"), "" '就往字典中添加这个次级目录名作为一个条目 End If End If MyName = Dir '继续遍历寻找 Loop i = i + 1 Loop Did.Add ("文件清单"), "" '以查找D盘下所有EXCEL文件为例 For Each Ke In Dic.keys MyFileName = Dir(Ke & "*.xls") Do While MyFileName <> "" Did.Add (Ke & MyFileName), "" MyFileName = Dir Loop Next For Each Sh In ThisWorkbook.Worksheets If Sh.Name = "XLS文件清单" Then Sheets("XLS文件清单").Cells.Delete F = True Exit For Else F = False End If Next If Not F Then Sheets.Add.Name = "XLS文件清单" End If Sheets("XLS文件清单").[A1].Resize(Did.Count, 1) = WorksheetFunction.Transpose(Did.keys) TT = Time – t MsgBox Minute(TT) & "分" & Second(TT) & "秒"End Sub

6. 怎样用宏将excel文件名提取出来

thisworkbook.name

7. 求帮忙改个excel的宏代码,实现excel文件合并后sheet名称为原来excel的文件名

右键左下角的工作表查看代码,复制以下代码:Sub 多表多文件合并为多表一文件()Dim FileArrayDim X As IntegerDim strFilePath As StringDim strFileName As StringDim intNum As IntegerApplication.ScreenUpdating = FalseFileArray = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="合并工作薄")X = 1While X <= UBound(FileArray) Workbooks.Open Filename:=FileArray(X) 'MsgBox (FileArray(X)) 'ThisWorkbook.Sheets. strFilePath = FileArray(X) intNum = InStrRev(strFilePath, "\") '使用instrrev函数获取最后文件夹名截至的位置 strFileName = Mid(strFilePath, intNum + 1) '文件名ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = strFileName Sheets().Move after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)X = X + 1WendExitHandler:Application.ScreenUpdating = TrueExit Suberrhadler: MsgBox Err.DescriptionEnd Sub保存后,回到excel,选 视图 =》 宏=》 查看宏=》找到 多表多文件合并为多表一文件,执行这个宏

8. excel 如何用宏取打开的excel文件名

如果你只是想链接引用其他工作簿中某工作表数据的数据,则不是必须把第二个文件打开才可以。只需要在要引用的单元格(当然也可以在你的宏程序中,根据需要改动)把引用地址写好就可以了,类似于='C:\[Book2.xls]Sheet1'!$A2

9. 如何用excel宏提取文件名生成目录如何用excel宏提取文件名生成目录比如要从C盘提取其所有的文件名(

方法一:1、在那个文件夹内新建一个.TXT文件(如wenjian.txt),用记事本单开输入dir> 1.txt保存退出将刚才的.TXT(wenjian.txt)更名为.bat文件(wenjian.bat)双击wenjian.bat文件运行一次,在文件夹内多出一个1.txt文件打开1.txt文件,将其中的内容粘贴到Excel中,数据——分列处理就可以得到你要的文件名列表了!方法二:在那个文件夹下新建Excel文件,打开新建的Excel文件,右击工作表标签(如Sheet1),查看代码——在代码编辑器中输入以下代码:Sub aaa()f = Dir("c:\*.*")han = 1Do While f > ""Cells(han, 1).Value = fhan = han + 1f = DirLoopEnd Sub回到Excel表格中,工具——宏——宏——选择Sheet1.Test——执行看看效果吧!另外可以到http://www.excelhome.net/,看看有没有更适合你的。

10. 如何在excel使用宏提取文件夹内文本的内容

写了一小部分,可以获取文件夹下所有文件名称,路径,大小,创建日期,不知道能否对你有帮助。1.添加VBA代码,选择新插入的模块后,插入以下代码Sub getpath()Range("A2:C1000").ClearContents '清空A2:C1000列On Error Resume NextDim shell As VariantSet shell = CreateObject("Shell.Application")Set filePath = shell.BrowseForFolder(&O0, "选择文件夹", &H1 + &H10, "") '获取文件夹路径地址Set shell = NothingIf filePath Is Nothing Then '检测是否获得有效路径,如取消直接跳出程序Exit SubElsegg = filePath.Items.Item.PathEnd IfSet obj = CreateObject("Scripting.FileSystemObject") '定义变量Set fld = obj.getfolder(gg) '获取路径For Each ff In fld.Files '遍历文件夹里文件m = m + 1Cells(m + 1, 1) = ff.NameCells(m + 1, 2) = ff.PathCells(m + 1, 3) = ff.SizeCells(m + 1, 4) = ff.DateCreatedNextEnd Sub2.运行宏(alt+F8),宏的名称为getpath

未经允许不得转载:山九号 » excel获取文件名宏|如何用excel宏提取文件名生成目录

赞 (0)