我在一个.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