Excel:将输入的值转换为URL路径

时间:2015-10-16 16:23:16

标签: excel excel-vba vba

我正在使用谷歌文档,并希望允许用户将值输入到单元格(例如,列A)。输入的值将变为URL路径参数。该URL始终以相同的网址段开头。

说明:

输入" CW-7"。电池的价值将转变为www.website.com/CW-7
输入" BH-67"。该单元格的价值将变为www.website.com/BH-67

如何做到这一点?
任何脚本示例都可以自动执行此操作吗?

3 个答案:

答案 0 :(得分:2)

如果你不介意有两列你可以让下一列使用Hyperlink函数。

假设您在“A”栏中输入“CW-7”值,那么在B栏中您可以:

=HYPERLINK("www.website.com/"&A1,A1)

&与Concatenate函数相同,它基本上只是将任何文本字符串拼凑在一起。这样,您就可以创建随单元格中的数据而变化的超链接。

答案 1 :(得分:1)

以下是您如何组合它们。一旦你将单元格值包含在网站名称中,我就不知道你正在尝试用它做什么,我可以告诉你。

.cv-section

答案 2 :(得分:1)

或者,您可以在输入后自动将输入的文本直接替换为URL。这段代码很粗糙(我只是写了它)所以你可能需要调整它,但它说明了这个想法:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Columns("A:A")

If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
    Dim LastRow As Long
    With ActiveSheet
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    End With

    Dim URL As String
    URL = "https://www.google.com/#q=" & Cells(LastRow, 1).Text

    Application.EnableEvents = False

    ActiveSheet.Hyperlinks.Add Anchor:=Cells(LastRow, 1), Address:=URL, TextToDisplay:=Cells(LastRow, 1).Text

    Application.EnableEvents = True

Else
End If
End Sub

此外,我认为这是“粗略的”,因为它不聪明:它只是将您输入A列的最后一个单元格转换为URL。如果你开始从A列中删除单元格,它将开始转换以前转换的单元格,你会弄得一团糟。

编辑:此代码仅在粘贴到您希望其运行的工作表的模块中时才有效。 Sheet1(Main)或Sheet2(Sheet2)等。

Edit2:经过进一步测试后,我意识到它不会弄得一团糟,因为它仍然使用前一个URL“友好名称”中的TEXT来重建新的URL,这意味着你可以安全地删除行,它不会破坏任何行剩下的网址。 :)