ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] dropbox excel vba µ´¹ï¸ô®| §ï ¬Û¹ï¸ô®|

[µo°Ý] dropbox excel vba µ´¹ï¸ô®| §ï ¬Û¹ï¸ô®|

[ª©¥DºÞ²z¯d¨¥]
  • GBKEE(2016/10/20 06:07): ³o¤£¬OVBA ªºµ{¦¡½X.

dropbox excel vba µ´¹ï¸ô®| §ï ¬Û¹ï¸ô®|

°_¦]¬O¬°¤FÀɮצw¥þ¡A­«­nªºÀɮ׳£¬O§Q¥Î  dropbox ©Î google driver ¨Ó¦s©ñ

excel ¤¤·|§Q¥Î¨ì¨ä¥¦ÀɮסA³o¨ÇÀɮ׬O§Q¥Î GetOpenFileName ¨ú±oµ´¹ï¸ô®|¡A¦s©ñ¦bÀx¦sÀɤ§¤¤¡AµM«á³z¹L¥¨¶°¨Ó¶}±Ò

­«ÂI¦b©ó ¨Ã¤£¬O¨C¤@¥xpc dropbox / google driver ªº¸ô®|³£¤@¼Ë¡A³o¨Çµ{¦¡«ü©wªº¸ô®|¤£¤@¼Ë¡C

µ²ªG·|¾É­P¡A¦b¤½¥q¯à°÷§ä¨ìÀɮסA¦^¨ì®a«o§ä¤£¨ì¡]µ´¹ï¸ô®|¿ù»~¡^

¡°­«ÂI¡G¬Û¹ï¥Ø®|¨S¿ù¡]³£¬O¦b dropbox ¤U¡^

©Ò¥H§Ú·Q¼g­Ó vba ¨Ó°µ¬Û°µ³B²z

¨Ò¤@¡G
GetOpenFileName path=                 D:\Dropbox\Dropbox\_Office\__«È¤á°ò¥»¸ê®Æ_.xls
ActiveWorkbook.Path=                 D:\Dropbox\Dropbox\2016«H«Ê
relative path=                         \..\_Office\__«È¤á°ò¥»¸ê®Æ_.xls

¨Ò¤G
GetOpenFileName path=                 D:\Dropbox\Dropbox\_Office\__«È¤á°ò¥»¸ê®Æ_.xls
ActiveWorkbook.Path=                 D:\Dropbox\Dropbox\_Office\¤ëµ²±b\201609¤ëµ²
relative path=                         \..\..\__«È¤á°ò¥»¸ê®Æ_.xls




¥Ø«e§Ú¤ÀªR§¹¤§«á¡Apsuedo code ¤j·§¬O³o¼Ë

for(
        ±qActiveWorkbook ´M§ä \ ¡A²£¥Í±qµu¨ìªøªº¸ô®|©MGetOpenFileName path ¤ñ¸û¡A¬O§_¦³­«´_
       
        §ä¥X³Ìªøªº¸ô®|«á
}
                ¨Ò¤@¡G
                GetOpenFileName path=                 D:\Dropbox\Dropbox
                ActiveWorkbook.Path=                 D:\Dropbox\Dropbox
                ¨Ò¤G
                GetOpenFileName path=                 D:\Dropbox\Dropbox\_Office
                ActiveWorkbook.Path=                 D:\Dropbox\Dropbox\_Office

}
        §R°£³Ìªø¸ô®|

                ¨Ò¤@¡G
                GetOpenFileName path=                 \_Office\__«È¤á°ò¥»¸ê®Æ_.xls
                ActiveWorkbook.Path=                 \2016«H«Ê
                ¨Ò¤@¡G
                GetOpenFileName path=                 \__«È¤á°ò¥»¸ê®Æ_.xls
                ActiveWorkbook.Path=                 \¤ëµ²±b\201609¤ëµ²

        ±qActiveWorkbook.Path ´M§ä¦³´X­Ó \ ¡A²£¥Í´X­Ó \..
                ¨Ò¤@¡G
                GetOpenFileName path=                 \_Office\__«È¤á°ò¥»¸ê®Æ_.xls
                ActiveWorkbook.Path=                 \2016«H«Ê
                relative path=                         \..
               
                ¨Ò¤G¡G
                GetOpenFileName path=                 \__«È¤á°ò¥»¸ê®Æ_.xls
                ActiveWorkbook.Path=                 \¤ëµ²±b\201609¤ëµ²
                relative path=                         \..\..
       
        ¦A & GetOpenFileName path       
                ¨Ò¤@¡G
                GetOpenFileName path=                 \_Office\__«È¤á°ò¥»¸ê®Æ_.xls
                ActiveWorkbook.Path=                 \2016«H«Ê
                relative path=                         \..\_Office\__«È¤á°ò¥»¸ê®Æ_.xls
               
                ¨Ò¤G¡G
                GetOpenFileName path=                 \__«È¤á°ò¥»¸ê®Æ_.xls
                ActiveWorkbook.Path=                 \¤ëµ²±b\201609¤ëµ²
                relative path=                         \..\..\__«È¤á°ò¥»¸ê®Æ_.xls
       

¯à§_¯à¦³°ª¤â«üÂI¤@¤U¡A¥¿½Tªºµ{¦¡¼gªk¡AÁÂÁÂ
¤½¶}¸gÅç¡A³Ð³y´¼¼z¡]§Ú¤S¤£¾a³o¹L¬¡¡^

³o¬O pseudo code ¡A§Ú¼g vba ªº¯à¤O¨S³o»ò¦n¡AµLªk§Ö³t  coding ¥X·Qªk~~
¤½¶}¸gÅç¡A³Ð³y´¼¼z¡]§Ú¤S¤£¾a³o¹L¬¡¡^

TOP

¦^´_ 2# eigen

§Ú¦Û¤v°Ê¤â¼g¥X¨Ó ¡A¾A¦X¨Ï¥Î drobpox / google driver ¤§Ãþªºª±®a¡A¶}±Ò¹w³]ªºÀɮסA±Ä¥Î¬Û¹ï¸ô®|¡A¥iÁקK¨ä¥¦¹q¸£¶}±Ò¡A§ä¤£¨ìÀɮתº°ÝÃD¡C
  1. Private Sub CommandButton1_Click()
  2.         Dim ControlFile As String

  3.         Dim OpenFile_Input As String
  4.         Dim OpenFile_Name As String
  5.         Dim OpenFile_Len As Integer

  6.         Dim Workbook_Path As String
  7.         Dim Workbook_Len As Integer

  8.         Dim path_index As Integer
  9.         Dim path1 As String
  10.         Dim path2 As String
  11.         Dim Relative_Path As String
  12.         Dim Match_Path As String
  13.         Dim Match_Index As Integer

  14.         ControlFile = ActiveWorkbook.Name
  15.         Workbook_Path = ActiveWorkbook.Path & "\"
  16.         Workbook_Len = Len(Workbook_Path)

  17.         OpenFile_Input = ""
  18.         OpenFile_Input = Application.GetOpenFilename("EXCEÀÉ(*.XLS),*xls")
  19.         OpenFile_Len = Len(OpenFile_Input)
  20.         OpenFile_Name = Right(OpenFile_Input, OpenFile_Len - InStrRev(OpenFile_Input, "\"))

  21.         If OpenFile_Input <> "" And OpenFile_Input <> "False" Then

  22.                 For path_index = 1 To Workbook_Len
  23.                         path1 = Left(Workbook_Path, path_index)
  24.                         path2 = Left(OpenFile_Input, path_index)
  25.                         If path1 = path2 Then
  26.                                 Match_Path = path1                                              '§ä¥X­«´_ªº¸ô®|¤Îªø«×
  27.                                 Match_Index = path_index                                        '§ä¥X­«´_ªº¸ô®|¤Îªø«×
  28.                         End If
  29.                 Next

  30.                 Match_Path = Left(Match_Path, InStrRev(Match_Path, "\"))                        '­pºâ¥X¥¿½Tªº­«´_¸ô®|
  31.                 path1 = Right(Workbook_Path, Workbook_Len - Len(Match_Path))
  32.                 path2 = Right(OpenFile_Input, OpenFile_Len - Len(Match_Path))                   '§R°£­«´_ªº¸ô®|

  33.                 Relative_Path = ""                                                              '­pºâ´X­Ó "\"¡A²£¥Í´X­Ó"\.."
  34.                 For path_index = 1 To Len(path1)
  35.                         If Mid(path1, path_index, 1) = "\" Then
  36.                                 Relative_Path = Relative_Path & "\.."
  37.                         End If
  38.                 Next

  39.                 If Match_Path = "" Or Match_Index = 3 Then                                      '¤£¦PºÏºÐ ©Î µL­«´_¸ô®|¡Aª½±µÅã¥Ü Absolute Path
  40.                         Relative_Path=OpenFile_Input
  41.                 Else
  42.                         Relative_Path = Relative_Path & "\" & path2                             '²£¥Í³Ì«áªº¸ô®|
  43.                 EndIf


  44.                 MsgBox "Reference " & OpenFile_Input & vbCrLf & vbCrLf & Relative_Path & vbCrLf & vbCrLf & Workbook_Path & vbCrLf & vbCrLf & OpenFile_Input

  45.                 Range("P2").Value = Relative_Path
  46.                 Range("P3").Value = "[" & OpenFile_Name & "]"

  47.                 Workbooks.Open OpenFile_Input
  48.                 Windows(ControlFile).Activate
  49.                 Sheets("¤ëµ²¦a§}").Range("A2").Select


  50.         End If

  51. End Sub
½Æ»s¥N½X
¤½¶}¸gÅç¡A³Ð³y´¼¼z¡]§Ú¤S¤£¾a³o¹L¬¡¡^

TOP

        ÀR«ä¦Û¦b : ¤ß¤¤±`¦sµ½¸Ñ¡B¥]®e¡B·P«ä¡Bª¾¨¬¡B±¤ºÖ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD