`
啸笑天
  • 浏览: 3469218 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

Excel VBA选择文件、高容错性地打开文件

    博客分类:
  • vba
 
阅读更多

VBA选择文件

 

Sub SelectFile()
    Dim FileName As Variant                        
     '打开文件对话框返回的文件名,是一个全路径文件名,其值也可能是False,因此类型为Variant
    Dim sFileName As String                         '从FileName中提取的文件名
    Dim sPathName As String                         '从FileName中提取的路径名
    Dim aFile As Variant                            '数组,提取文件名sFileName时使用
    Dim ws As Worksheet                             '存储文件路径名和文件名的工作表
    Set ws = Worksheets("Sheet1")                   '设置工作表
    FileName = Application.GetOpenFilename("Excel 文件 (*.xls),*.xls")
    '调用Windows打开文件对话框
    If FileName <> False Then                       '如果未按“取消”键
        aFile = Split(FileName, "\")                '在全路径中,以“\”为分隔符,分成数据
        sPathName = aFile(0)                        '取盘符
        For i = 1 To UBound(aFile) - 1              '循环合成路径名
            sPathName = sPathName & "\" & aFile(i)
        Next
        sFileName = aFile(UBound(aFile))            '数组的最后一个元素为文件名
        ws.Cells(1, 2).Value = sPathName            '保存路径名
        ws.Cells(2, 2).Value = sFileName            '保存文件名
    End If
End Sub
 

选择打开文件后并没有真实的把它打开,然后高容错性地打开文件

 

Function OpenExcelFile(sPath As String, ByVal sFileName As String, bDisplay As Boolean, sPwd As String) As Integer
    '打开Excel文件
    'Ver 1.05
    '完成时间:2007.12.01
    '设计:美猴王软件工作室 www.okexcel.com.cn
    '参数说明:
    'sPath:文件绝对路径;sFileName:Excel文件名;bDisplay:True显示错误信息;sPwd:文件打开密码
    '返回值:-1:同名文件已经打开;-2:文件不存在或密码错误;0:成功打开;1:文件已经被打开
    Dim bOpen As Boolean
    Dim sFullName As String
    On Error Resume Next
    If InStr(LCase(sFileName), ".xls") = 0 Then sFileName = sFileName & ".xls"
    sFullName = Workbooks(sFileName).FullName
    '检查是否已经打开同名的Excel文件
    '如果有sFullName不为空
    On Error GoTo 0
    bOpen = False
    If sFullName <> "" Then
        If LCase(sFullName) = LCase(sPath & "\" & sFileName) Then
            bOpen = True
            '判断已经打开的同名文件是否本次需要打开的文件
            OpenExcelFile = 1
            '文件已经被打开
        Else
            If bDisplay Then
                MsgBox "请首先关闭“" & sFileName & "”文件!" & Chr(13) & "不能同时打开同名文件,这是Excel的规定!", vbOKOnly + vbExclamation, "文件的打开错误"
            End If
            bOpen = True
            OpenExcelFile = -1
            '不能同时打开同名文件,这是Excel的规定
        End If
    End If
    If Not bOpen Then
        On Error GoTo errOpen
        Workbooks.Open Filename:=sPath & "\" & sFileName, Password:=sPwd
        On Error GoTo 0
        OpenExcelFile = 0
        '成功打开文件
    End If
    Exit Function
errOpen:
    If bDisplay Then MsgBox Err.Description, vbOKOnly + vbExclamation, "文件的打开错误"
    OpenExcelFile = -2
    '文件不存在或密码错误
    On Error GoTo 0
End Function
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    excel VBA帮助文件.rar_Excel VBA_VBA excel_VBA,Excel_excel_vba exce

    本压缩包文件"excel VBA帮助文件.rar"包含了一个名为"excel VBA帮助文件.CHM"的CHM(Compiled Help Manual)格式的帮助文档,这是一个Windows系统的离线帮助文件,用于提供Excel VBA的详细教程和参考信息。...

    EXCEL VBA PDF 文件

    类似地,`Workbooks.Open("PDF的路径")`是Excel VBA中的一个方法,通常用于打开Excel工作簿,但如果你安装了支持的ActiveX控件,它也可以用来打开PDF文件。 下面是一个示例脚本,展示了如何结合使用`CreateObject`...

    excel VBA帮助文件.rar

    "excel VBA帮助文件.rar"是一个包含VBA相关帮助文档的压缩包,特别是针对Excel应用的VBA编程。这个压缩包中的"excel VBA帮助文件.CHM"是一个离线版的MSDN帮助文件,对于那些想要深入学习和开发Excel VBA解决方案的人...

    excel vba 帮助文件

    Excel VBA(Visual Basic for Applications)是Microsoft Excel中的编程环境,允许用户自定义工作簿的各个方面,包括自动化任务、创建宏、以及构建复杂的用户界面。这些文件是VBA帮助文件的集合,主要用于解决2013版...

    excel vba帮助文件文档

    将解压后的CHM文件内容拷贝到"C:\Program Files\Microsoft Office\Office11\2052"路径下,意味着这些帮助文件将会与Excel程序关联,使得用户在编写VBA代码时可以直接在Excel中查阅这些帮助信息。这里的"2052"通常...

    在word通过VBA打开excel数据文件

    - 在实际应用中,建议增加更完善的错误处理机制,例如在打开文件失败时给出提示。 - 如果Word表格的结构与Excel中的数据不一致,可能会导致数据错位,因此需要确保两者之间的匹配性。 - 当处理大量数据时,应考虑...

    excel中不打开文件调用其它文件数据(VBA)

    通过以上步骤,我们可以在不打开文件的情况下,利用VBA高效地读取并处理其他Excel文件中的数据。这种方式特别适用于需要定期更新数据或者在多个工作簿间进行数据同步的场景。需要注意的是,这种方法仅适用于读取文本...

    Excel VBA 范例文件代码

    Excel VBA(Visual Basic for Applications)是Microsoft Excel内置的一种编程语言,它允许用户自定义工作簿、工作表和图表的功能,实现自动化操作和复杂的数据处理。在Excel VBA中,可以编写代码来与Access数据库...

    excel打开并操作CAD(excel-vba实现)

    运行宏实现弹窗打开cad文件并另存

    EXCEL VBA 读取文本文件宏

    - 当用户取消打开文件操作时,`If RlumpLog = "False" Then Exit Sub` 结束宏运行,防止无意义的操作。 - 在写入Excel时,如果没有获取到有效的数据,宏会检查上一行的内容并复制到当前行的列1,确保数据连续性。 ...

    EXCELVBA 日期选择器加载项

    标题 "EXCELVBA 日期选择器加载项" 指的是在Excel中使用VBA(Visual Basic for Applications)创建的一个特殊功能,它允许用户通过一个交互式的日期选择面板来方便地选择日期,而无需手动输入。这个加载项通常集成在...

    Excel VBA程序开发自学宝典(第3版)案例文件.rar

    《Excel VBA程序开发自学宝典(第3版)案例文件》是一本专注于Excel VBA编程技术的自学教程,旨在帮助读者深入理解并掌握Excel VBA的编程技巧。该书的第三版更新了大量实例,提供了丰富的实践练习,旨在使学习者能够...

    EXCEL VBA宏文件代码

    7. **事件处理**:Excel VBA中的事件驱动编程允许你在特定事件(如打开工作簿、单击按钮)发生时触发代码执行。 8. **用户窗体**:通过创建用户窗体(User Forms),你可以为用户提供图形界面,提高交互性。窗体上...

    VBA访问远程Excel

    ### VBA访问远程Excel知识点详解 #### 一、概述 在日常工作中,有时我们需要通过VBA(Visual Basic for Applications)脚本来操作存储在网络共享位置...希望本文能帮助大家更好地理解和运用VBA访问远程Excel的技术。

    Excel-VBA操作文件四大方法

    总的来说,Excel-VBA操作文件的方法多样,选择哪种取决于具体需求和场景。理解并熟练运用这四种方法,能够极大地提高你在处理数据和文件时的效率。无论是简单的Excel文件操作,还是复杂的文本和数据库处理,VBA都能...

    Excel VBA 操作文件四大方法

    Excel对象适合简单快速地处理Excel文件,VBA文件处理语句适合基础的文本文件操作,FileSystemObject适用于更广泛的文件和目录操作,而API函数则适用于需要底层控制的情况。在实际应用中,开发者可以根据任务的复杂性...

    ExcelVBAComm.rar_EXCEL 串口 VBA_excel vba OpenComm_excel串口_vba串口程序

    这个“ExcelVBAComm.rar_EXCEL 串口 VBA_excel vba OpenComm_excel串口_vba串口程序”压缩包包含了一个名为“Excel+串口.xls”的文件,它是一个使用VBA实现串口通信的示例项目。 在Excel VBA中,我们通常会使用...

    最新 Excel VBA 活用范例大辞典(经典畅销版) 韩小良 实例文件

    最新 Excel VBA 活用范例大辞典(经典畅销版) 韩小良 实例文件 出版社: 中国铁道出版社; 第1版 (2012年9月1日) 平装: 776页 语种: 简体中文 开本: 32 韩小良编著的《最新Excel VBA活用范例大辞典》以大量的...

    ExcelVBA列出指定目录及子目录文件

    在Excel VBA中,我们可以利用文件系统对象(FileSystemObject)来遍历指定的目录及其子目录,并将所有文件的信息列出到工作表中。这是一项非常实用的技能,尤其是在需要批量处理或管理大量文件时。以下将详细介绍...

    Excel VBA 2010官方离线帮助.rar

    4. **事件处理**:理解VBA中的事件驱动编程,如何编写事件过程来响应用户的操作,例如打开工作簿、选择单元格等事件。 5. **模块与类**:掌握模块的创建和使用,包括标准模块和类模块,以及如何利用类模块实现对象...

Global site tag (gtag.js) - Google Analytics