精华内容
下载资源
问答
  • 可直接运行的VB6.0示例程序,实现功能:采用相对路径打开文件
  • vb纯代码打开文件

    2011-11-30 21:46:32
    vb打开文件 纯代码打开的
  • VB6.0已经过时,想深入学习它的话,还望三思而后行。 喜欢Windows系统的同学,可以了解一下 .NET 和 .NET Core。 该博文仅可用于测试与参考。 转载于:https://my.oschina.net/zhichengjiu/blog/3073969

         IDE : Visual Basic 6.0精简版
          OS : Windows 10 x64
    typesetting : Markdown
           blog : my.oschina.net/zhichengjiu
          gitee : gitee.com/zhichengjiu

    GUI

    code

    Private Sub Command1_Click()
    
    Shell "explorer D:\dir-demo-2019-07-14\demo.txt", 1
    
    End Sub
    
    

    result

    reference

    resource

    • [ 文档 ] docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-basic-6/visual-basic-6.0-documentation
    • [ .NET ] dotnet.microsoft.com
    • [ 平台 ] www.oschina.net
    • [ 平台 ] gitee.com


    感谢帮助 志成就 的人们。
    VB6.0已经过时,想深入学习它的话,还望三思而后行。
    喜欢Windows系统的同学,可以了解一下 .NET 和 .NET Core。
    该博文仅可用于测试与参考。

    转载于:https://my.oschina.net/zhichengjiu/blog/3073969

    展开全文
  • VB-判断并获取打开文件路径,本例以打开一个图片文件为例,显示图片的路径信息,要实现这一功能,请参看以下代码:  Private Sub Command1_Click()  On Error Resume Next  With CommonDialog1  '设置初始化...
  • 免控件利用API获取选择的文件夹路径 以方便获取该文件夹下的文件处理
  • 我们在使用电脑时,用户常常会有需求打开一个指定文件夹,并自动选中某个指定文件。...不过那节课程中,我们主要针对shell命令直接打开文件的功能做了学习。 那么这节课就是对shell命令的一个扩展:如何用shell命令打

    我们在使用电脑时,用户常常会有需求打开一个指定文件夹,并自动选中某个指定文件。

    比如在用浏览器下载文件完成后,可以打开所在文件夹,这就用到这个功能。可以看到这个功能还是非常的实用的。

    那么如何实现这个功能呢?

    其实非常的简单,那就是要用shell函数了,这个函数在我的公众号——大讲堂——shell方法中是有详细学习课程的(不清楚的读者可以先去了解一下,以免本节课程看不懂)。不过那节课程中,我们主要针对shell命令直接打开文件的功能做了学习。

    那么这节课就是对shell命令的一个扩展:如何用shell命令打开文件夹,以及实现打开文件夹后选中指定文件的功能。

    一、打开指定文件夹

    需求:打开E:\test文件夹(E盘下面建了一个名为test的文件夹)。

    实现:

    Private Sub Command1_Click()
        Dim x As Long
        x = Shell("explorer.exe E:\test", 1)
    End Sub
    

    说明:
    1,这里实现方式与直接打开指定文件的语法是一样的,只是这里路径不用写到文件,只需要写到文件夹即可。
    2,shell方法第一个参数是字符串表达式,第二个参数是打开后的显示方式

    二,打开文件夹,并选中指定文件

    需求:打开打开E:\test文件夹,并选中“222.pptx”这个文件。

    文件夹内容如图:

    在这里插入图片描述

    实现代码:

    Private Sub Command1_Click()    
        Dim x As Long    
        x = Shell("explorer.exe /select,E:\test\222.pptx", 1)
    End Sub
    

    运行效果:
    单击测试按钮后,程序将自动弹出test文件夹,并标选中222.pptx文件。(但不打开)。

    在这里插入图片描述

    这里再解释一下这句代码:

    Shell("explorer.exe /select,E:\test\222.pptx", 1)
    

    1,explorer.exe 会自动使用默认软件来打开后面的文件。

    2,/select 表示要选中指定文件,而不是直接打开,如果不写则表示直接打开文件。

    3,第二个参数1表示打开方式,有多个参数可以设置,具体可以我参考另外一篇关于shell的文章。

    在这里插入图片描述

    展开全文
  • vb打开文件夹浏览框的方法总结

    万次阅读 2017-05-09 17:35:08
    众所周知,在vb中如果是打开某一个文件的话,非常简单,使用CommonDialog组件即可轻松完成,但是他只能选择文件,之后或许选取的文件路径,而如果想要浏览文件夹,就没这么方便了。 这里介绍3个办法来实现文件夹...
    众所周知,在vb中如果是打开某一个文件的话,非常简单,使用CommonDialog组件即可轻松完成,但是他只能选择文件,之后或许选取的文件路径,而如果想要浏览文件夹,就没这么方便了。 
    

    这里介绍3个办法来实现文件夹浏览。

    第一个非常简单,利用Shell对象
     程序代码
    '引用Microsoft Shell Controls And Automation
    Dim ShellA As New Shell
    Private Sub Command1_Click()    '建立一个按钮对象                                                    
    Dim Shellb As Shell32.Folder
    Set Shellb = ShellA.BrowseForFolder(0, "选择文件夹", 0)
    ShellA.Open b
    End Sub

    记得一定要引用Microsoft Shell Controls And Automation

    第二种方法,我们同样利用shell对象,但是加几个函数

    程序代码

    '引用Microsoft Shell Controls And Automation
    Private shlShell As Shell32.Shell
    Private shlFolder As Shell32.Folder
    Private Const BIF_RETURNONLYFSDIRS = &H1
    Private Sub Command1_Click() '
        If shlShell Is Nothing Then
           Set shlShell = New Shell32.Shell
        End If
        Set shlFolder = shlShell.BrowseForFolder(Me.hWnd, "请选择文件夹", BIF_RETURNONLYFSDIRS)
        If Not shlFolder Is Nothing Then
           MsgBox shlFolder.Items.Item.Path  '测试
        End If
    End Sub



    上面2个方法的结果如图:
      vb中 打开文件夹浏览框的方法总结 - metrom -

    第三个方法,是利用API来操作。

     程序代码
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
    Private Const MAX_PATH = 260

    Private Declare Function SHBrowseForFolder Lib "Shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "Shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
    Private Type BrowseInfo
         hWndOwner As Long
         pIDLRoot As Long
         pszDisplayName As Long
         lpszTitle As Long
         ulFlags    As Long
         lpfnCallback     As Long
         lParam     As Long
         iImage     As Long
    End Type
    Private Sub Command1_Click()
         Dim lpIDList As Long
         Dim sBuffer As String
         Dim szTitle As String
         Dim tBrowseInfo As BrowseInfo
         szTitle = App.Path
         With tBrowseInfo
              .hWndOwner = Me.hWnd
              .lpszTitle = lstrcat(szTitle, "")
              .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
         End With

         lpIDList = SHBrowseForFolder(tBrowseInfo)
         If (lpIDList) Then
              sBuffer = Space(MAX_PATH)
              SHGetPathFromIDList lpIDList, sBuffer
              sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
              MsgBox sBuffer
         End If
    End Sub



    如果希望对话框中有“新建文件夹”,那么就给.ulFlags 加上BIF_USENEWUI属性,BIF_RETURNONLYFSDIRS 的意思是仅仅返回文件夹。
    效果如图:
      vb中 打开文件夹浏览框的方法总结 - metrom -

    同时我也打包2个完整的利用此API的代码,有意者请自己学习了。


    第4个方法。
    其实是第三个方法的改进,就是打开对话框后,自动定位到当前文件夹位置 。

    程序代码

    'Objects:   Form1、Command1、Module1  
      'Form1:  
      Option   Explicit  
      Private   Const   BIF_RETURNONLYFSDIRS   =   1  
      Private   Const   BIF_DONTGOBELOWDOMAIN   =   2  
      Private   Const   MAX_PATH   =   260  
      Private   Declare   Function   SHBrowseForFolder   Lib   "shell32"   (lpbi   As   BrowseInfo)   As   Long  
      Private   Declare   Function   SHGetPathFromIDList   Lib   "shell32"   (ByVal   pidList   As   Long,   ByVal   lpBuffer   As   String)   As   Long  
      Private   Declare   Function   lstrcat   Lib   "kernel32"   Alias   "lstrcatA"   (ByVal   lpString1   As   String,   ByVal   lpString2   As   String)   As   Long  
      Private   Declare   Function   LocalAlloc   Lib   "kernel32"   (ByVal   uFlags   As   Long,   ByVal   uBytes   As   Long)   As   Long  
      Private   Declare   Sub   CopyMemory   Lib   "kernel32"   Alias   "RtlMoveMemory"   (pDest   As   Any,   pSource   As   Any,   ByVal   dwLength   As   Long)  
      Private   Const   LPTR   =   (&H0   or   &H40)  
      Private   Type   BrowseInfo  
                      hWndOwner             As   Long  
                      pIDLRoot             As   Long  
                      pszDisplayName   As   Long  
                      lpszTitle             As   Long  
                      ulFlags                 As   Long  
                      lpfnCallback     As   Long  
                      lParam                 As   Long  
                      iImage                 As   Long  
      End   Type  
      Private   Function   MyAddressOf(AddressOfX   As   Long)   As   Long  
      MyAddressOf   =   AddressOfX  
      End   Function  
        
      Private   Sub   Command1_Click()  
      Dim   lpIDList   As   Long  
      Dim   sBuffer   As   String  
      Dim   szTitle   As   String  
      Dim   tBrowseInfo   As   BrowseInfo  
      Dim   Ret   As   Long  
      szTitle   =   "This   is   the   title"  
      Dim   sPath   As   String  
      sPath   =   VBA.InputBox("初始路径:",   ,   "C:\program   files")  
      With   tBrowseInfo  
              .hWndOwner   =   Me.hWnd  
              .lpszTitle   =   lstrcat(szTitle,   "")  
              .ulFlags   =   BIF_RETURNONLYFSDIRS   +   BIF_DONTGOBELOWDOMAIN  
              .lpfnCallback   =   MyAddressOf(AddressOf   BrowseForFolders_CallbackProc)  
              Ret   =   LocalAlloc(LPTR,   VBA.Len(sPath)   +   1)  
              CopyMemory   ByVal   Ret,   ByVal   sPath,   VBA.Len(sPath)   +   1  
              .lParam   =   Ret  
      End   With  
      lpIDList   =   SHBrowseForFolder(tBrowseInfo)  
      If   (lpIDList)   Then  
          sBuffer   =   VBA.Space(MAX_PATH)  
          SHGetPathFromIDList   lpIDList,   sBuffer  
          sBuffer   =   VBA.Left(sBuffer,   VBA.InStr(sBuffer,   vbNullChar)   -   1)  
          MsgBox   sBuffer  
          End   If  
      End   Sub  
        
      'Module1:  
      Option   Explicit  
      Private   Declare   Function   SendMessage   Lib   "user32"   Alias   "SendMessageA"   (ByVal   hWnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   lParam   As   Any)   As   Long  
      Private   Const   WM_USER   =   &H400  
      Private   Const   BFFM_SETSelectIONA   As   Long   =   (WM_USER   +   102)  
      Private   Const   BFFM_SETSelectIONW   As   Long   =   (WM_USER   +   103)  
      Private   Const   BFFM_INITIALIZED   As   Long   =   1  
      Public   Function   BrowseForFolders_CallbackProc(ByVal   hWnd   As   Long,   ByVal   uMsg   As   Long,   ByVal   lParam   As   Long,   ByVal   lpData   As   Long)   As   Long  
      If   uMsg   =   BFFM_INITIALIZED   Then  
          SendMessage   hWnd,   BFFM_SETSelectIONA,   True,   ByVal   lpData  
      End   If  
      End   Function



    效果如图:

      vb中 打开文件夹浏览框的方法总结 - metrom -

    看了这个代码后,你会发现它确实定位到了当前文件夹,但是他有一个问题就是,没有选定当前文件夹。咱们继续看方法5.

    第5个方法。
    他同样是第3个方法的加强版,不过这个方法应当是最为完美的方法,不仅定位到当前文件夹,而且选定它。
    建立一个模块文件

    程序代码

    'form1
    ''Module1:  
    Option Explicit
    Private Const BIF_STATUSTEXT = &H4&
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
    Private Const MAX_PATH = 260

    Private Const WM_USER = &H400
    Private Const BFFM_INITIALIZED = 1
    Private Const BFFM_SELCHANGED = 2
    Private Const BFFM_SETSTATUSTEXT = (WM_USER + 100)
    Private Const BFFM_SETSelectION = (WM_USER + 102)

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long

    Private Type BrowseInfo
      hWndOwner      As Long
      pIDLRoot       As Long
      pszDisplayName As Long
      lpszTitle      As Long
      ulFlags        As Long
      lpfnCallback   As Long
      lParam         As Long
      iImage         As Long
    End Type

    Private m_CurrentDirectory As String   'The current directory
    Public Function BrowseForFolder(owner As Form, Title As String, StartDir As String) As String
      Dim lpIDList As Long
      Dim szTitle As String
      Dim sBuffer As String
      Dim tBrowseInfo As BrowseInfo
      m_CurrentDirectory = StartDir & vbNullChar

      szTitle = Title
      With tBrowseInfo
        .hWndOwner = owner.hWnd
        .lpszTitle = lstrcat(szTitle, "")
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN + BIF_STATUSTEXT
        .lpfnCallback = GetAddressofFunction(AddressOf BrowseCallbackProc)  'get address of function.
      End With

      lpIDList = SHBrowseForFolder(tBrowseInfo)
      If (lpIDList) Then
        sBuffer = Space(MAX_PATH)
        SHGetPathFromIDList lpIDList, sBuffer
        sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
        BrowseForFolder = sBuffer
      Else
        BrowseForFolder = ""
      End If
      
    End Function

    Private Function BrowseCallbackProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal lp As Long, ByVal pData As Long) As Long
        Dim lpIDList As Long
      Dim ret As Long
      Dim sBuffer As String  
      On Error Resume Next      
      Select Case uMsg  
        Case BFFM_INITIALIZED
          Call SendMessage(hWnd, BFFM_SETSelectION, 1, m_CurrentDirectory)      
        Case BFFM_SELCHANGED
          sBuffer = Space(MAX_PATH)
          
          ret = SHGetPathFromIDList(lp, sBuffer)
          If ret = 1 Then
            Call SendMessage(hWnd, BFFM_SETSTATUSTEXT, 0, sBuffer)
          End If      
      End Select  
      BrowseCallbackProc = 0  
    End Function
    Private Function GetAddressofFunction(add As Long) As Long
      GetAddressofFunction = add
    End Function



    建立一个窗口和一个按钮

     程序代码
    Option Explicit
    Private getdir As String
    Private Sub Command1_Click()    
        getdir = BrowseForFolder(Me, "Select A Directory", Text1.Text)
        If Len(getdir) = 0 Then Exit Sub     Text1.Text = getdir    
    End Sub
    Private Sub Form_Load()
      Text1.Text = CurDir
    End Sub



    最终结果如图:
      vb中 打开文件夹浏览框的方法总结 - metrom -

    上面是对vb中调用文件夹对话框的一个总结,个人认为第5个方法是最为完美的,这也是从国外坛子淘到的

    不得不说,国外对源码共享还是走在我们前面的。

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

    VB选择文件夹(比较顺眼的)

    Public Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

    Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

    Public Type BROWSEINFO
    hOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
    End Type
    Public Type SHITEMID
    cb As Long
    abID As Byte
    End Type
    Public Type ITEMIDLIST
    mkid As SHITEMID
    End Type

    Function getFolder(frm As Form, Optional Flags As Long = 1) As String
    On Error Resume Next
    Dim BI As BROWSEINFO
    Dim IDL As ITEMIDLIST
    Dim r As Long
    Dim pidl As Long
    Dim tmpPath As String
    Dim pos As Integer

    BI.hOwner = frm.hwnd
    BI.pidlRoot = 0&
    BI.lpszTitle = "请选择路径:"
    'bi.ulFlags = BIF_RETURNONLYFSDIRS
    'BIF_DEFAULT = 0x0000,
    'BIF_BROWSEFORCOMPUTER = 0x1000,效果不明
    'BIF_BROWSEFORPRINTER = 0x2000,效果不明
    'BIF_BROWSEINCLUDEFILES = 0x4000,效果不明
    'BIF_BROWSEINCLUDEURLS = 0x0080,效果不明
    'BIF_DONTGOBELOWDOMAIN = 0x0002,;效果不明
    'BIF_EDITBOX = 0x0010,带文件夹名称编辑框
    'BIF_NEWDIALOGstyle = 0x0040,带新建文件夹
    'BIF_NONEWFOLDERBUTTON = 0x0200,没有菜单
    'BIF_RETURNFSANCESTORS = 0x0008,效果不明
    'BIF_RETURNONLYFSDIRS = 0x0001,;默认
    'BIF_SHAREABLE = 0x8000,效果不明
    'BIF_STATUSTEXT = 0x0004,;效果不明
    'BIF_UAHINT = 0x0100,效果不明
    'BIF_VALIDATE = 0x0020,效果不明
    'BIF_NOTRANSLATETARGETS = 0x0400,效果不明

    BI.ulFlags = Flags
    'get the folder
    pidl = SHBrowseForFolder(BI)

    tmpPath = Space$(512)
    r = SHGetPathFromIDList(ByVal pidl, ByVal tmpPath)
    getFolder = ""

    If r Then
    pos = InStr(tmpPath, Chr$(0))
    tmpPath = Trim(Left(tmpPath, pos - 1))
    If Right(tmpPath, 1) <> "\" Then tmpPath = tmpPath & "\"
    getFolder = Trim(tmpPath)
    End If
    End Function

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

    [VB]用API打开浏览文件夹对话框,选择文件夹

    Option Explicit

    Private Type BROWSEINFO
      hOwner As Long
      pidlRoot As Long
      pszDisplayName As String
      lpszTitle As String
      ulFlags As Long
      lpfn As Long
      lParam As Long
      iImage As Long
    End Type

    Private Const BIF_RETURNONLYFSDIRS = &H1 '浏览文件夹
    Private Const BIF_NEWDIALOGSTYLE = &H40 '新样式(有新建文件夹按钮,可调整对话框大小)
    Private Const BIF_NONEWFOLDERBUTTON = &H200 '新样式中,没有新建按钮(只调大小)

    Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
      (ByVal pidl As Long, _
      ByVal pszPath As String) As Long
    Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" _
      (lpBrowseInfo As BROWSEINFO) As Long

    Public Function GetFolderName(hWnd As Long, Text As String) As String
      Dim bi As BROWSEINFO
      Dim pidl As Long
      Dim path As String
      With bi
        .hOwner = hWnd
        .pidlRoot = 0&  '根目录,一般不需要改
        .lpszTitle = Text
        .ulFlags = BIF_RETURNONLYFSDIRS '根据需要调整
      End With
      pidl = SHBrowseForFolder(bi)
      path = Space$(512)
      If SHGetPathFromIDList(ByVal pidl, ByVal path) Then
        GetFolderName = Left(path, InStr(path, Chr(0)) - 1)
      End If
    End Function

    展开全文
  • 打开系统的“浏览文件”对话框,很多人都用控件,这固然很好,但如果用VB自身编程去实现岂不是更好,这个源码就是用VB中的API...
  • vb 文件路径选择

    千次阅读 2012-06-11 02:01:29
    BaseForm '----- 'BaseForm '----- '画面初期化 Private Sub Form_Load() '磁盘路径 Drive_Path = "D:" '文件夹路径 Dir_Path = "D:" ... '新旧文件路径 Old_filepath_txt.Text = "

     

    BaseForm

    '-----
    'BaseForm
    '-----
    
    '画面初期化
    Private Sub Form_Load()
        
        '磁盘路径
        Drive_Path = "D:"
        
        '文件夹路径
        Dir_Path = "D:"
        
        '新旧文件路径
        Old_filepath_txt.Text = ""
        New_filepath_txt.Text = ""
    End Sub
    
    Private Sub OLD_xls_cmd_1_Click()
    
        '原旧文件路径 取得
        Select_File_Path = Old_filepath_txt.Text
    
        File_Select_From.Show 1
        
        '旧文件路径 设定
        Old_filepath_txt.Text = Select_File_Path
        
    End Sub
    
    Private Sub NEW_xls_cmd_2_Click()
    
        '原新文件路径 取得
        Select_File_Path = New_filepath_txt.Text
        
        File_Select_From.Show 1
        
        '新文件路径 设定
        New_filepath_txt.Text = Select_File_Path
    
    End Sub
    
    '比较按钮
    Private Sub Diffent_cmd_Click()
        
        '输入的文件路径 检查
        If FilePath_Check = False Then
            Exit Sub
        End If
        
        '新旧Excel 比较实施
        Call Excel_diff
        
        
        
        
        MsgBox ("OK")
        
    End Sub
    
    '输入的文件路径 检查
    Private Function FilePath_Check() As Boolean
        
        FilePath_Check = True
        
        '旧文件是否Excel文件检查
        If Right(Trim(Old_filepath_txt.Text), 3) <> "xls" Then
            
            '警告提示
            MsgBox ("输入的旧文件并非EXCEL文件")
            
            '旧文件输入框 光标选中
            Old_filepath_txt.SetFocus
            
            FilePath_Check = False
            
            Exit Function
        End If
        
        '旧文件 是否存在检查
        If Dir(Old_filepath_txt.Text) = "" Then
            
            '警告提示
            MsgBox ("输入的旧文件不存在")
            
            '旧文件输入框 光标选中
            Old_filepath_txt.SetFocus
            
            FilePath_Check = False
            
            Exit Function
        End If
        
        '新文件是否Excel文件检查
        If Right(Trim(New_filepath_txt.Text), 3) <> "xls" Then
            
            '警告提示
            MsgBox ("输入的新文件并非EXCEL文件")
            
            '新文件输入框 光标选中
            New_filepath_txt.SetFocus
            
            FilePath_Check = False
            
            Exit Function
        End If
        
        '新文件 是否存在检查
        If Dir(New_filepath_txt.Text) = "" Then
            
            '警告提示
            MsgBox ("输入的新文件不存在")
            
            '新文件输入框 光标选中
            New_filepath_txt.SetFocus
            
            FilePath_Check = False
            
            Exit Function
        End If
        
        '新旧文件路径 是否相同检查
        If Trim(Old_filepath_txt.Text) = Trim(New_filepath_txt.Text) Then
        
            '警告提示
            MsgBox ("输入的新旧文件路径相同 为同一个文件")
            
            '旧文件输入框 光标选中
            Old_filepath_txt.SetFocus
            
            FilePath_Check = False
            
            Exit Function
        
        End If
    
    End Function
    
    '新旧Excel 比较实施
    Private Sub Excel_diff()
        
        '创建EXCEL应用类
        Dim MyXls As Object
        Set MyXls = CreateObject("Excel.Application")
        
        '旧Excel文件
        Dim Old_WorkBook As Object
        Set Old_WorkBook = MyXls.Workbooks.Open(Trim(Old_filepath_txt.Text))
        
        '新Excel文件
        Dim New_WorkBook As Object
        Set New_WorkBook = MyXls.Workbooks.Open(Trim(New_filepath_txt.Text))
        
        '新旧Excel比较结果Excel文件
        Dim Result_WorkBook As Object
        Set Result_WorkBook = MyXls.Workbooks.Add
        
        Dim i As Integer
        Dim j As Integer
        
        '旧Excel文件Sheet循环
        For i = 1 To Old_WorkBook.sheets.Count
            
            '新Excel文件Sheet循环
            For j = 1 To New_WorkBook.sheets.Count
                
                '新旧excel文件中相同sheet名的sheet作对比
                If Old_WorkBook.sheets(i).Name = New_WorkBook.sheets(j).Name Then
                    
                    '复制旧文件中要做对比的sheet至 结果Excel 复制至最后位置sheet
                    Old_WorkBook.sheets(i).Copy After:=Result_WorkBook.Worksheets(Result_WorkBook.sheets.Count)
                    
                    '
                    '具体处理。。。
                    '
    
                End If
                
            Next
            
        Next
        
        
        '新旧Excel文件关闭
        Old_WorkBook.Close (True)
        New_WorkBook.Close (True)
        
        '比较结果Excel文件多余sheet删除
        If Result_WorkBook.sheets.Count > 3 Then
            
            For i = Result_WorkBook.sheets.Count To 1 Step -1
                
                If Result_WorkBook.sheets(i).Name = "Sheet1" _
                    Or Result_WorkBook.sheets(i).Name = "Sheet2" _
                    Or Result_WorkBook.sheets(i).Name = "Sheet3" Then
    
                    Result_WorkBook.sheets(i).Delete
    
                End If
                
            Next
        
        End If
        
        
        'EXCEL文件可见
        MyXls.Visible = True
        
    End Sub
    
    '旧文件路径输入框 光标进入
    Private Sub Old_filepath_txt_GotFocus()
    
        Old_filepath_txt.SelStart = 0
        Old_filepath_txt.SelLength = Len(Old_filepath_txt.Text)
        
    End Sub
    
    '新文件路径输入框 光标进入
    Private Sub New_filepath_txt_GotFocus()
        
        New_filepath_txt.SelStart = 0
        New_filepath_txt.SelLength = Len(New_filepath_txt.Text)
        
    End Sub
    

     

    File_Select_Form

    '--------------------
    '文件选择目录 联动设定
    '--------------------
    
    ' 联动Flg
    Private Init_Flg As String '初期化时 各列表框不联动(0:初期化,1:非初期化)
    
    
    '画面初期化
    Private Sub Form_Load()
        
        '初期化开始Flg
        Init_Flg = "0"
        
        '磁盘
        Drive1.Drive = Drive_Path
        
        '文件夹
        Dir1.Path = Dir_Path
        
        '文件
        File1.Path = Dir_Path
        
        '初期化结束Flg
        Init_Flg = "1"
    
    End Sub
    
    '磁盘列表 选择变更
    Private Sub Drive1_Change()
        
        '非初期化时 变更的场合 联动实施
        If Init_Flg = "1" Then
        
            Drive_Path = Drive1.Drive
            
            '文件夹列表 联动
            Dir1.Path = Drive1.Drive
            
        End If
    
    End Sub
    
    '文件夹列表 选择变更
    Private Sub Dir1_Change()
    
        '非初期化时 变更的场合 联动实施
        If Init_Flg = "1" Then
            
            Dir_Path = Dir1.Path
            
            '文件列表 联动
            File1.Path = Dir1.Path
        
        End If
        
    End Sub
    
    '文件列表 双击
    Private Sub File1_DblClick()
        
        Call Return_File_Path
        
    End Sub
    
    '选择按钮 按下
    Private Sub Select_cmd_Click()
    
        Call Return_File_Path
        
    End Sub
    
    '返回文件路径 并关闭窗口
    Private Sub Return_File_Path()
        
        '取得的文件路径 设定
        Select_File_Path = Dir1.Path
        
        If Right(Dir1.Path, 1) <> "\" Then
            Select_File_Path = Select_File_Path & "\"
        End If
        
        Select_File_Path = Select_File_Path & File1.FileName
        
        '关闭窗口
        Unload Me
        
    End Sub
    


    Module1
     

    '磁盘路径 全局变量
    Global Drive_Path As String
    
    '文件夹路径 全局变量
    Global Dir_Path As String
    
    '取得Excel文件路径
    Global Select_File_Path As String


     

    展开全文
  • VB6.0编写,利用Commondialog控件选择多个文件,并获取各个文件路径,可以直接使用!!!!!!!!!!
  • 判断打开文件,并显示其路径程序(VB6.0代码编写) 判断打开文件,并显示其路径。 QQ223857666勾月
  •  Open filename$ For Input As n% '打开文件  If Err Then '根据错误返回值判断  jc% = False '没检测到  Else  jc% = True '检测到指定文件  End If  Close n% '关闭文件  End Function
  • VB6.0通用遍历所选文件夹...新建一个窗体,添加一个Command1按钮,添加一个listbox控件,名称为list1,打开一个Excel空白文件(如不需要请注释相关代码)。把本文件代码复制粘贴进去,单击按钮即可弹窗提示选择文件夹。
  •  Dim str As String = "D:\my files\教案\电子书\高效能人士的七个习惯.chm" '文件夹的路径 可使用相对路径实现  If File.Exists(str) Then  System.Diagnostics.Process.Start(str)  Else  MsgBox("sorry ,the...
  • VB6 判断文件是否存在,使用VB内置的函数FileExists来实现,可以说实现方法简单,直接调用函数(文件路径)即可,至于返回的结果,这里有两种形式,一种是以MsgBox的方式弹出窗口告之,另一种是返回布尔值,True或...
  • VB6.0已经过时,想深入学习它的话,还望三思而后行。 喜欢Windows系统的同学,可以了解一下 .NET 和 .NET Core。 该博文仅可用于测试与参考。 转载于:https://my.oschina.net/zhichengjiu/blog/3073965
  • VB打开指定Word文档

    2020-06-05 14:28:07
    首先你要在VB的“工程”->...Dim wdApp As Word.ApplicationDim aDoc As DocumentSet wdApp = New Word.ApplicationSet aDoc = wdApp.Documents.Open(FileName:=“你要打开的Word文件路径及文件名”)wdApp.Visible
  • 1.本程序的对话框和OpenFileDialog对话框一样,可以输入路径, 2.可以选择选择文件夹,同时选择多个文件夹。 3.也可以选择选择文件,同时选择多个文件。 应用代码非常简单。 再也不用FolderBrowserDialog这个...
  • VB.net 想点击button获取选择文件夹的路径,并把路径存入文本框1中。网上搜的都是添加commondialog控件,可是我只看到有button,新手求解,谢谢!
  • 摘要:VB源码,文件操作,文件拖拽,拖放打开文件 VB实现的子类化文件拖拽打开实例源码,能实现List Text控件的文件拖放打开功能,也支持多文件同时拖放打开的功能。用拖拽的方式把需要打开的文件图标,拖放到本窗口中...
  • VB实现选取文件夹路径

    万次阅读 2014-04-22 18:24:36
    VB中直接选取文件路径直接使用控件就可以实现 选取文件夹路径可以采用下述办法。   添加模块文件直接进行调用。模块内容代码 '---------------------------------------------------------------------------...
  • vb选择文件路径

    千次阅读 2007-05-16 10:12:00
    Option ExplicitPrivate Const BIF_RETURNONLYFSDIRS = 1Private Const BIF_DONTGOBELOWDOMAIN = 2Private Const MAX_PATH = 260Private Declare Function SHBrowseForFolder Lib "shell32" _ (lpbi As Brows
  • 判断打开文件,并显示其路径程序(VB6.0源代码编写) 判断打开文件,并显示其路径VB6.0源代码
  • 在很多情况下,我们需要在应用程序中直接打开电脑中的某个文件,如excel、word、ppt、图片、视频等文件。那么这时候就需要使用到shell命令。 但是shell命令中的参数传递也是非常有讲究的,对于第一次使用的人来说,...
  • VB打开Excel文件

    万次阅读 2014-03-05 17:12:41
    (1)vb打开Excel    用EXCEL对象读取EXCEL文件中数据.然后通过ADODB连接SQL进和导入  下面是EXCEL对象的详解 1 前言  做为一种简捷、系统的 Windows应用程序开发工具,VB具有强大的数据处理功能,提供了...
  • 文件选择对话框 | 标签: |字号大中小 订阅 第一步:新建一个Modules,假设为Modulas1.bas 把下面的复制到Module.bas中 Public Const BIF_RETURNONLYFSDIRS = 1 Public Const BIF_DONTGOBELOWDOMAIN = 2...
  • 本文主要解决保存文件时,如何检测该保存文件名对应文件打开时,提示文件已经打开或被其他进程占用。
  • 功能:点击button1能实现弹出文件打开对话框,用户选择数据库并将之导入到form中的datagridview中。初学者可以参考一下。
  • 此源代码仅为利用API来获取打开文件完整路径 以及 保存时的完整路径 不会实际打开文件或保存文件 如果需要实际操作则需要另外代码实现 这里就不实例了. 主要免控件而利用API实现打开保存对话框

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,957
精华内容 8,382
关键字:

vb打开文件路径