精华内容
下载资源
问答
  • Excel VBA和文件夹-1.4打开文件夹内excel文件的方法前景提要在之前我们学习了通过VBA来创建文件夹的方法,(忘记了的话,可以拉到最下面,有传送门),基本上可以满足大家日常工作中创建文件夹的需求了,那么如果我们...

    Excel VBA和文件夹-1.4打开文件夹内excel文件的方法

    前景提要

    在之前我们学习了通过VBA来创建文件夹的方法,(忘记了的话,可以拉到最下面,有传送门),基本上可以满足大家日常工作中创建文件夹的需求了,那么如果我们的需求调转过来,如果打开电脑中指定的文件件呢?

    这确实和之前的思路是相反的,之前我们是主动创建,现在我们是去打开电脑中已经存在的文件夹,那么我们需要如何操作呢?

    思路

    我们先回忆下,我们如何手动打开我们想要打开的文件夹呢,自然是我已经知道了文件夹在那个盘,那个文件夹下,然后我直接去哪个路径下,打开那个文件夹就可以了,VBA想要打开文件夹,也是这样的思路,先要去指定的路径中找到文件夹,执行打开的命令,好了思路有了,我们可以尝试着写代码了

    上代码

    这里假设我们要打开一个在桌面的excel文件

    Sub test()Dim s$ '声明一个变量,用来存储路径s = "C:甥敳獲****Desktop****.xlsx"‘详细的路径Workbooks.Open s '执行打开的命令End Sub

    代码如上,大家在使用的过程中,想要将对应的型号转化成为实际的路径。最简单的方法就是复制文件的属性中获取

    def0c113f9b47197cdab9231bf38e3fa.png

    我们来调试下上面的代码,按下F8执行调试功能,我们可以看到文件成功的打开了

    0a07302311073f049614453b86aa1028.png

    这就是最简单的打开文件的方法 ,明天我们将会分享一下更加灵活,使用的打开文件/文件夹的方法。

    =======================往期文章集锦==================

    Excel VBA——文件夹的相关操作(1)

    Excel VBA和文件夹-1.2.1创建文件夹注意事项

    Excel VBA和文件夹-1.2.2创建文件夹注意事项

    Excel VBA和文件夹-1.3创建当天日期命名的文件夹

    展开全文
  • Excel VBA文件夹-1.7通过对话框灵活选定文件夹打开对应文件前景提要之前我们学习过了如何通过VBA遍历我们指定的文件夹,通过此方法,我们可以很方便将某个文件夹中相关格式的文件全部打开并处理,节省了不少的...

    Excel VBA和文件夹-1.7通过对话框灵活选定文件夹并打开对应文件

    前景提要

    之前我们学习过了如何通过VBA遍历我们指定的文件夹,通过此方法,我们可以很方便将某个文件夹中相关格式的文件全部打开并处理,节省了不少的时间,不过我们也说了,上面的方法只能打开我们指定的某个文件夹的方法,意思就是,我们写好的VBA代码,每次都只能打开指定的文件夹的文件,但是其他文件夹的就不定,如果不小心换了名字,或者命名的时候多了一个空格或者是标点的话,程序就没有办法来执行了,有没有什么好的办法,能够让自己根据实际的需要来选择我们想要的文件夹,然后系统自己执行后面的的操作呢?

    思路

    自然是可以的,我们一定都非常熟悉window的对话框吧,在你通过excel打开新的文件的时候,都会弹出一个对话框,让你选择你想要打开的文件,这样功能确实是非常不错,

    b8903ec8492b1ed3c68010fc69c23004.png

    如果我们在写脚本的时候,也利用这个功能,灵活的选择自己需要的文件夹,不就可以实现这样的效果了吗?

    那么VBA能否实现这样的对话框功能呢?当然是可以的,对话框其实我们已经非常的熟悉了,今天带着大家一起来使用下VBA中的对话框。

    上代码

    这里我们不需要指定对应的文件夹的位置了,通过对话框的窗口选择我们想要打开的文件的位置,然后执行后面的汇总操作,因为这次主要介绍的是对话框的操作,所以打开文件等操作我们这里就忽略了,保持代码的简短,方便大家阅读,也利于大家获得知识点。

    Sub test()With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = True If .Show = -1 Then For x = 1 To .SelectedItems.Count Debug.Print .SelectedItems(x) Next x Else MsgBox "您未作出任何选择,程序结束!" Exit Sub End IfEnd WithEnd Sub

    代码解析

    With Application.FileDialog(msoFileDialogFilePicker)********End With

    这一段代码的作用就是打开我们前面所说的对话框,我们来进行调试下,看看是不是这样的效果。

    372df3a19d948925f3041beb3e59c982.png

    这里我们可以看到我们已经成功的打开了文件选择的对话框,我们可以根据自己的文件所在位置,选择自己想要的文件,并不需要指定对应的文件所在的位置了,方便了很多。

    If .Show = -1 Then ******* Else MsgBox "您未作出任何选择,程序结束!" Exit Sub End If

    这一段判断就是判断我们是否作出了选择,既然对话框中有一个打开和一个取消的按钮,自然我们也需要做出对应的判断了,如果没有做出选择,我们还去执行后面的操作的话,程序可能会报错的,我们之前也说过了,这样的体验感非常的不好,如果你拿给其他的同事用的话,其他同事可能会质疑你的能力和水平,这样也会导致你的影响并不好,所以我们这里要做出一个判断,判断的方法很简单,如果选择了打开的话,.Show = -1就是成立的,如果没有,那就是错误的,程序就是执行弹窗提示,并直接强制结束程序,我们来试试。

    8bc2de48f5e892029909a2ca9c6f97f2.png

    当我点击取消之后,程序并未执行后面的正常操作,而是执行了弹窗提醒的操作,完美的达到了我们的目的。

    然后我们再来说说如果选择了打开的话,后面的代码的意思。

    For x = 1 To .SelectedItems.Count Debug.Print .SelectedItems(x) Next x

    我们既然是要汇总好多个文件,那么我们选择的时候,自然是需要选择好多个文件了,这里的.SelectedItems.Count代表的就是我们已经选择的文件总数,通过之前的学习,我们知道,我们打开文件夹自然是需要完整的路径了,那么这里完整的路径要如何活动呢,也很简单,.SelectedItems(x)就是每个文件的完整路径,我们来一步步调试下,这样更加清楚效果。

    我们选择了文件夹中的所有文件,也就是总数为3个,这里.SelectedItems.Count的结果就是3,后面我们讲通过for循环遍历3次。

    23d79da97fe40ecbb59056b0c7dde50c.png

    我们在每次遍历的时候,都将文件夹的完整路径,也是就是.SelectedItems(x)完整的输出,也就是这样的效果

    141b9cb6da489713399eacdbd88824a4.png

    如果我们想要执行打开的命名的话,就可以直接写成

    Workbooks.Open .SelectedItems(x)

    完整代码+注释

    Sub test()With Application.FileDialog(msoFileDialogFilePicker) '打开对话框 .AllowMultiSelect = True If .Show = -1 Then '判断是否有选择文件 For x = 1 To .SelectedItems.Count '遍历循环开始 Debug.Print .SelectedItems(x) '输出文件的完整路径,实际操作中,可以转换成为你想要的其他操作。 'Workbooks.Open .SelectedItems(x) Next x Else MsgBox "您未作出任何选择,程序结束!" '如果没有做出选择,弹窗提示,并且跳出程序。 Exit Sub End IfEnd WithEnd Sub

    好了,今天的分享就结束了,本次我们主要学习的就是通过对话框来选择指定的文件,这样我们就不需要提前在代码中写入指定的文件路径了,不仅仅是提升了代码的可读性,也提高了代码的通用性,不仅仅可以方便自己的使用,也可以方便其他同事的操作,现在又没有感觉到VBA的强大呢,学好VBA,可以提升我们日常办公的效率,大家快来一起学习吧。

    ======================================================

    本人已经打算长期分享一些网络搜集的各种VBA知识,如果大家有问题也可以提出来共同解决,一起进步,毕竟VBA的世界还是很大的。

    因为基本上都是自学的,很多代码和知识都是来源于网络的,如果在分享的过程中,正好拿了某位大神的代码,请告诉我,我将标注代码来源出处,也方便大家学习分享,谢谢!

    =============================传送门==============================

    Excel VBA和文件夹-1.4打开文件夹内excel文件的方法

    Excel VBA和文件夹-1.5遍历文件夹并打开

    Excel VBA和文件夹-1.6遍历文件夹打开指定格式的文件

    展开全文
  • Excel VBA和文件夹-1.5遍历文件夹并打开前景提要在上一篇,我们知道如何通过vba打开指定的excel文件了,但是在实际的工作中,我们发现情况并没有我们想象的那么简单,比方老板快下班的时候说要做公司日报汇总,恰好...

    Excel VBA和文件夹-1.5遍历文件夹并打开

    529d4f32702cd0e7777b35afeb6fb8c0.png

    前景提要

    在上一篇,我们知道如何通过vba打开指定的excel文件了,但是在实际的工作中,我们发现情况并没有我们想象的那么简单,比方老板快下班的时候说要做公司日报汇总,恰好今年行业市场不错,业绩也挺好,公司也是招募了不少的人手,人多好办事嘛,但是呢,这个情况反而让你为难了,你会发现,一个文件夹有好多文件,10+还好,但是你一个部门起码有20+,加上其他分公司的,起码100+,让你一个个的打开文件,然后复制粘贴。。。。。想想都恐怖啊,换成我,估计直接跑到公司顶楼跳下去了,不过别慌,我们不是有VBA嘛,那么VBA可以实现这样的效果嘛?

    既然我这样说了,那肯定是可以的啦(废话),现在不是都说“科学技术是第一生产力”,一点都没错,虽然VBA算不上什么高大上的科学技术,只是一个非常简单的脚本语言,但是至少人家能够解决我们人力需要花费很长时间才能解决的问题嘛,废话有点多了,so,开工

    思路

    之前我们说过,VBA实现的逻辑,和我们实际手工操作是一样的,在本例中,我们先去指定的文件夹,然后打开,然后一个一个的打开excel文件,复制粘贴,然后关闭文件,再打开下一个。。。。。好了,再说下去我都觉得有点啰嗦了,上代码

    上代码

    这里假设我们的目标文件在D盘的新建文件夹下

    Sub test()Dim FileName$FileName = "D:新建文件夹"f = Dir(FileName & "")Do While f <> 0 Workbooks.Open FileName & "" & f f = Dir() Workbooks.CloseLoopEnd Sub

    代码如上

    代码解析

    首先我们指明文件夹的位置,FileName代表的就是文件夹的位置,然后我们这里使用了dir函数,熟悉前面的内容的童鞋,应该还记得我们之前在创建文件夹的时候,使用了mkdir(),这两个函数非常的相似,mkdir()是创建文件夹的,而dir()是遍历文件夹的,既然知道了dir()的作用,那么第4行就好理解了,

    f = Dir(FileName & "")

    就是遍历我们指定的文件夹的意思

    7f757b7d0dcb79dcffa692050707cf59.png

    然后我们接着往下看,这里我们使用了一个do loop循环语句,这里的作用就是dir在遍历的时候,如果找不到文件之后,他会返回一个空值,这里我们只需要判断返回的结果f是否为空,就知道循环是否结束了,如果循环结束了,那么就可以跳出循环了。

    这里还有一个语法知识点,在do循环中遍历的时候,f = Dir()这里是不需要再加上具体的参数的,这点要留意,否则他永远都是循环打开第一个工作表。陷入死循环。

    Do While f <> 0 Workbooks.Open FileName & "" & f f = Dir() Workbooks.Close

    这里我们按下F8进入调试功能看看f是多少

    11124005eb4cfa13d95e24ee45c55eca.png

    这里我们可以看到f已经有结果了,成功的定位到了第一个文件,但是我们注意到,他只是一个文件夹的名字,要打开一个文件,我们上一次说了,需要完整的路径,所以这里我们需要重新构造一个完整路径,即:FileName & "" & f,如果还是不清楚,我们在看看结果

    bfb9151fe348977c296e31c8176d41ec.png

    这样才算是完整路径,有了这个完整路径之后,我们就可以执行打开的操作了,打开操作上次已经分享了,这次我们顺带说下关闭的 操作,即Workbooks.Close

    完整代码+注释

    Sub test()Dim FileName$FileName = "D:新建文件夹" '指定文件夹的位置f = Dir(FileName & "") '循环开始Do While f <> 0 '判断f的值,如果不是空,证明循环还没有结束 Workbooks.Open FileName & "" & f '构造完整的路径并执行打开操作,下面你可以继续写其他的功能 f = Dir() '继续找下一个文件 Workbooks.Close '关闭已经打开的文件LoopEnd Sub

    OK了,通过上面的代码,就可以成功执行遍历同一个文件内的所有的文件的操作了,你可以根据自己的需要加上复制粘贴等相关的操作,很快就可以完成老板交代的任务了,能够节省我们很多的时间,想要准时下班,回家看球赛,陪伴家人,抓紧时间和我一起学些VBA吧。

    本人已经打算长期分享一些网络搜集的各种VBA知识,如果大家有问题也可以提出来共同解决,一起进步,毕竟VBA的世界还是很大的。

    因为基本上都是自学的,很多代码和知识都是来源于网络的,如果在分享的过程中,正好拿了某位大神的代码,请告诉我,我将标注代码来源出处,也方便大家学习分享,谢谢!

    =============================传送门=============================

    Excel VBA——文件夹的相关操作(1)

    Excel VBA和文件夹-1.2.1创建文件夹注意事项

    Excel VBA和文件夹-1.2.2创建文件夹注意事项

    Excel VBA和文件夹-1.3创建当天日期命名的文件夹

    Excel VBA和文件夹-1.4打开文件夹内excel文件的方法

    展开全文
  • '将此份文档另存为纯文本格式文件MdFileBrw.bas,'并导入至vba的模块中即可在其他模块调用当中的函数。'其中GetFolder函数可以选择文件夹并返回选择的路径(按取消则返回空字符串),'ListFilesFSO过程可以根据传入的...

    'AutoCAD VBA

    选择文件夹的代码

    '

    流沙之泉编写于

    2018

    11

    30

    日,于

    AutoCAD2017 64

    位上测试通过。

    '

    将此份文档另存为纯文本格式文件

    MdFileBrw.bas

    '

    并导入至

    vba

    的模块中即可在其他模块调用当中的函数。

    '

    其中

    GetFolder

    函数可以选择文件夹并返回选择的路径(按取消则返回空字符串)

    'ListFilesFSO

    过程可以根据传入的文件夹路径在调试输出窗口输出文件名,

    不含子文件夹。

    Attribute VB_Name = "MdFileBrw"

    Option Explicit

    '*************

    系统类型与函数声明开始

    ***************

    Public Type BROWSEINFO

    hOwner As LongPtr

    pidlRoot As LongPtr

    pszDisplayName As String

    lpszTitle As String

    ulFlags As LongPtr

    lpfn As LongPtr

    lParam As LongPtr

    iImage As LongPtr

    End Type

    Public Const BIF_RETURNONLYFSDIRS = &H1

    Public Const BIF_DONTGOBELOWDOMAIN = &H2

    Public Const BIF_STATUSTEXT = &H4

    Public Const BIF_RETURNFSANCESTORS = &H8

    Public Const BIF_BROWSEFORCOMPUTER = &H1000

    Public Const BIF_BROWSEFORPRINTER = &H2000

    Public Const BIF_NEWDIALOGSTYLE = &H40

    Declare

    PtrSafe

    Function

    SHGetPathFromIDList

    Lib

    "shell32.dll"

    Alias

    "SHGetPathFromIDListA" (ByVal pidl As LongPtr, ByVal pszPath As String) As LongPtr

    Declare

    PtrSafe

    Function

    SHBrowseForFolder

    Lib

    "shell32.dll"

    Alias

    "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As LongPtr

    '*************

    系统类型与函数声明结束

    ***************

    '

    此函数返回确保后面带反斜杠的文件路径

    Public Function EnsurePath(ByVal sPath As String) As String

    If Right(sPath, 1) <> "\" Then

    EnsurePath = sPath & "\"

    Else

    EnsurePath = sPath

    End If

    End Function

    展开全文
  • VBA中经常要用到文件对话框来进行打开文件、选择文件或选择文件夹的操作。用Microsoft Office提供的文件对话框比较方便。用法如下Application.FileDialog(fileDialogType)fileDialogType MsoFileDialogType 类型...
  • VBA中经常要用到文件对话框来进行打开文件、选择文件或选择文件夹的操作。 用Microsoft Office提供的文件对话框比较方便。 用法如下 Application.FileDialog(fileDialogType) fileDialogType ...
  • [VBA] 打开文件夹

    2013-06-17 10:06:00
    1 '显示打开文件夹对话框 2 With Application.FileDialog(msoFileDialogFolderPicker) 3 .Show 4 If .SelectedItems.Count = 0 Then Exit Sub '未选择文件夹 5 strFolder = .SelectedItems(1) 6 End With ...
  • VBA造文件夹的思考一文中介绍了如何用...这个选择的过程也是打开文件夹的一种,这种在VBA里用内置的对话框对象FileDialog就可以实现。今天要讲的打开文件夹不是这种,而是指在完成了一系列VBA动作后,如何直接打开...
  • Excel VBA文件夹-1.7通过对话框灵活选定文件夹打开对应文件前景提要之前我们学习过了如何通过VBA遍历我们指定的文件夹,通过此方法,我们可以很方便将某个文件夹中相关格式的文件全部打开并处理,节省了不少的...
  • Excel VBA文件夹-1.6遍历文件夹打开指定格式的文件前景提要之前我们学会了如何通过dir()来遍历文件夹打开文件的方法,当你文件中有很多相同格式的文件要汇总的时候,就可以考虑采用这个方法了,不过实际工作中,...
  • '因为自己昨天想不通,在路上想了一会儿,...'这个vba代码是后处理的代码,加载阶段未接触上进行修正 Dim wb As Workbook str = Dir("C:\Users\DELL\Desktop\保存\*.*") ' ActiveWindow.WindowState = xlNormal ...
  • Excel_VBA FileDialog 打开文件夹或文件

    千次阅读 2012-09-27 12:00:04
    ‘浏览文件和文件夹清单 Application.FileDialog(msoFileDialogFilePicker).Show ‘浏览文件夹清单 ...FileDialog 打开文件夹或文件 Dir 判断文件存在 Sub 按钮1_Click() '选择单一文...
  • EXCEL-VBA:调用打开文件夹对话框,选择路径
  • Application.FileDialog(常量) ...宏的执行过程中,用户选择文件夹,使用“选择文件夹”对话框很方便。虽然有一些方法,但使用FileDialog对象的方法比较简单。参数可以指定下面表的常量。 下面的示例代码
  • Excel VBA文件夹-1.6遍历文件夹打开指定格式的文件前景提要之前我们学会了如何通过dir()来遍历文件夹打开文件的方法,当你文件中有很多相同格式的文件要汇总的时候,就可以考虑采用这个方法了,不过实际工作中,...
  • (2)打开后按住Alt再按F11,这样就会打开vba代码编辑器 (3)点菜单栏上的“插入”,选择“模块”,这样在左下角就会出现一个“模块1” (4)双击“模块1”,右边就会出现“模块1”的编辑界面,将以下代码复制,...
  • 近日在工作中常常遇到需要将多个工作薄中的工作表合并到一张工作表里,手动打开每个工作薄复制里面的内容然后粘贴进同一张表里非常麻烦,最近在学习vba,所以自己练习写了一段代码以简化工作。(为了防止自己忘记...
  • Excel 打开对话框,获取文件夹路径 'Window「参照」ダイアログで選択したItem 名を取得 Public Function GetFolderName(ByVal DialogType As MsoFileDialogType) As String With Application.FileDialog(DialogType...
  • 一、问题工作需要将多个小的excel文件合并成为一个excel文件,文件格式、内容一致,因为文件数目较多,不考虑... 图1 同一个文件夹下的多个excel文件二、代码Sub 打开文件夹下所有文件并复制制定内容()Dim a$, n As...
  • Private Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory....
  • Sub VBA打开文件夹内所有Excel表格() Dim myPath$, myFile$, WB As Workbook '这个$ 是相当于定义字符串 myPath = "F:\" '把文件路径知定义给变量,这里请自行更改,记得最后要加一个反斜杠 myFile = Dir(myPath ...
  • Excel VBA文件夹-1.8通过对话框灵活选定文件的小技巧前景提要在之前,我们学习了如何通过对话框的形式来打开文件的方法,这种方法的好处就是两个字:灵活,我们不用在代码中强制指定必须在某个文件夹中操作,也...
  • VBA获取文件夹中的文件列表

    千次阅读 2010-03-13 22:03:00
    如果我们要在Excel中获取某个文件夹中所有的文件列表,可以通过下面的VBA代码来进行。代码运行后,首先弹出一个浏览文件夹对话框,然后...按Alt+F11,打开VBA编辑器,单击菜单“插入→模块”,将下面的代码粘贴到右侧的
  • CorelDRAW VBA - 打开选择文件夹对话框

    千次阅读 2018-01-10 22:04:51
    有时候我们可能需要让用户选择某个文件夹,比如说让用户指定某个目录,用于批量导入该目录下的文件。这篇教程将教会你使用 CorelDRAW 在代码中调用系统的文件夹选择对话框,并循环输出文件的名称和路径。 实现 ...
  • 'Check Public Function Check() As Variant On Error GoTo erlb Dim StrDir As String StrDir = ThisWorkbook.Worksheets("Path").Range("B2") objfile = Dir(StrDir & "\*.xlsx") ThisWorkbook...
  • 文件夹下的所有扩展名为xls的excel文件,修改所有工作表字体为“微软雅黑”,以及鼠标默认选中A1单元格 'Path是参数,调用 openFiles 这个方法时传过来的文件夹路径 Sub openFiles(Path) Dim File As String Dim ...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 316
精华内容 126
关键字:

vba打开文件夹