Visual basic Ексель Как задать относительный путь вместо абсолютного - VB

Узнай цену своей работы

Формулировка задачи:

Нашел макрос для Экселя. Этот макрос возвращает колонку с гиперссылками. См ниже Cells(r, 2).Formula = "=HYPERLINK(""" & FileItem.Path & """)" Сложность в том что гиперссылка Абсолютная. с:// и далее. Мне надо сделать ей относительной. Относительно расположения файла эксель. Как изменить этот код??? Заранее спасибо. Если этого недостаточно вот весь макрос.
Листинг программы
  1. Sub FileList()
  2. Dim V As String
  3. Dim BrowseFolder As String
  4. '????????? ?????????? ???? ?????? ?????
  5. With Application.FileDialog(msoFileDialogFolderPicker)
  6. .Title = "???????? ????? ??? ????"
  7. .Show
  8. On Error Resume Next
  9. Err.Clear
  10. V = .SelectedItems(1)
  11. If Err.Number <> 0 Then
  12. MsgBox "?? ?????? ?? ???????!"
  13. Exit Sub
  14. End If
  15. End With
  16. BrowseFolder = CStr(V)
  17. '????????? ???? ? ??????? ?? ???? ????? ???????
  18. ActiveWorkbook.Sheets.Add
  19. With Range("A1:E1")
  20. .Font.Bold = True
  21. .Font.Size = 12
  22. End With
  23. Range("A1").Value = "??? ?????"
  24. Range("B1").Value = "????"
  25. Range("C1").Value = "??????"
  26. Range("D1").Value = "???? ????????"
  27. Range("E1").Value = "???? ?????????"
  28. '???????? ????????? ?????? ?????? ??????
  29. '???????? True ?? False, ???? ?? ????? ???????? ????? ?? ????????? ?????
  30. ListFilesInFolder BrowseFolder, True
  31. End Sub
  32.  
  33. Private Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean)
  34. Dim FSO As Object
  35. Dim SourceFolder As Object
  36. Dim SubFolder As Object
  37. Dim FileItem As Object
  38. Dim r As Long
  39. Set FSO = CreateObject("Scripting.FileSystemObject")
  40. Set SourceFolder = FSO.getfolder(SourceFolderName)
  41. r = Range("A65536").End(xlUp).Row + 1 '??????? ?????? ?????? ??????
  42. '??????? ?????? ?? ?????
  43. For Each FileItem In SourceFolder.Files
  44. Cells(r, 1).Formula = FileItem.Name
  45. Cells(r, 2).Formula = "=HYPERLINK(""" & FileItem.Path & """)"
  46. 'Cells(r, 3).Formula = FileItem.Size
  47. 'Cells(r, 4).Formula = FileItem.DateCreated
  48. 'Cells(r, 5).Formula = FileItem.DateLastModified
  49. r = r + 1
  50. X = SourceFolder.Path
  51. Next FileItem
  52. '???????? ????????? ???????? ??? ?????? ????????? ?????
  53. If IncludeSubfolders Then
  54. For Each SubFolder In SourceFolder.SubFolders
  55. ListFilesInFolder SubFolder.Path, True
  56. Next SubFolder
  57. End If
  58. Columns("A:E").AutoFit
  59. Set FileItem = Nothing
  60. Set SourceFolder = Nothing
  61. Set FSO = Nothing
  62. End Sub

Решение задачи: «Visual basic Ексель Как задать относительный путь вместо абсолютного»

textual
Листинг программы
  1. ActiveSheet.Hyperlinks.Add Cells(r, 2), FileItem.Path, , , FileItem.Name

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы