一个CSV中的标题,其他CSV中的超链接,创建具有内置链接的新CSV



我在一个.csv中有纯文本标题,在另一个.csv 中有这些标题的超链接

我目前在同一本书中打开它们,将标题放在A中,将超链接放在H中,并使用

=HYPERLINK(H1,A1)

以获得我的标题的最终输出和内置的超链接。

有没有一种简单的方法(Excel VBA或宏)可以绕过手动工作,从原始的两个.csv文件中创建一个带有"内置超链接的标题"的新输出文件?

编辑:我的两个.csv文件都有各自的文本(超链接和标题),都在A栏下方。

Sub buildlinks()
Dim i As Integer
Dim wb1, wb2 As Workbook
Set wb1 = Application.Workbooks.Open("C:/path/Links.csv")
Set wb2 = Application.Workbooks.Open("C:/path/Titles.csv")
i = 1
Do Until wb1.Sheets("Sheet1Name").Cells(i, 1).Value = ""
    ThisWorkbook.Sheets("Sheet1Name").Cells(i, 1).Formula = "=HYPERLINK(" & wb1.Sheets("Sheet1Name").Cells(i, 1).Value & "," & wb2.Sheets("Sheet1Name").Cells(i, 1).Value & ")"
    i = i + 1
Loop
End Sub

假设您希望在当前电子表格中创建超链接,而不是创建单独的文件。

由于您已经说过输入实际上只是文本文件,每行一项,而不是逗号分隔的,因此使用VBA文件处理命令实现它实际上非常简单。

Sub BuildLinks(titlesFilePath as String, linksFilePath As String, ByVal rowStart As Long)
  Dim tf As Long, lf As Long, of As Long
  tf = FreeFile
  On Error Goto NO_TITLE_FILE
  Open titlesFilePath For Input As #tf
  lf = FreeFile
  On Error Goto NO_LINKS_FILE
  Open linksFilePath For Input As #lf
  On Error Goto 0
  While Not (EOF(tf) Or EOF(lf))
    Dim curTitle As String, curLink As String
    Line Input #tf, curTitle
    Line Input #lf, curLink
    Cells(rowStart, 1).Formula = "=HYPERLINK(""" & curLink & """,""" & curTitle & """)"
  Wend
  Close #tf
  Close #lf
  Exit Sub
NO_TITLE_FILE:
  MsgBox "Can't Open Title File" & titlesFilePath
  Exit Sub
NO_LINKS_FILE:
  MsgBox "Can't Open Links File" & linksFilePath
End Sub

最新更新