除了简单的录制宏之外,我对在Excel中使用VBA完全陌生。我目前正在尝试创建一个宏,以根据其内容自动将单元格链接到相应的文件,例如:单元格包含订单号“ F003910”,并且订单位于“ L:\ Docs \ Expenditure”中\ Purchase Orders \ F0039XX'。
我希望将其设置为复制单元格的内容,并创建一个指向文件路径的超链接,并在其末尾粘贴单元格的文本,这将与文件名匹配。
这是针对Excel 365的。我试图记录宏并复制和粘贴作为宏的一部分,但是它只是保存了第一次创建宏时的文本,而不是从选定的单元格中提取。
我意识到这甚至是不可能的,但是任何建议将不胜感激。
答案 0 :(得分:3)
如果您输入e。 G。 B4单元格中的“ F003910”,则在单元格下方手动输入的公式可能如下所示:
=HYPERLINK("L:\Docs\Expenditure\Purchase Orders\" & LEFT(B4,5) & "XX";"link")
VBA中的示例:
Private Sub TestMyHyperlink
Dim ws as Worksheet
Dim myCell as Range
Set ws = ActiveSheet
For each myCell in ws.Range("B4:B100")
myCell.FormulaR1C1 = _
"=HYPERLINK(""L:\Docs\Expenditure\Purchase Orders\"" & _
LEFT(RC[-1],5) & ""XX"", _
""link"")"
Next myCell
End Sub
答案 1 :(得分:0)
以下代码从Sheet1.range(“ A1”)获取值,创建路径并在Sheet1.range(“ B1”)中导入超链接。在这两种方法中,请不要忘记更改文件扩展名。
VBA代码:
Option Explicit
Sub test()
Dim cValue As String, path As String
With ThisWorkbook.Worksheets("Sheet1")
cValue = .Range("A1").Value
path = "L:\Docs\Expenditure\Purchase Orders\F0039XX\" & cValue & ".xls" '
.Hyperlinks.Add Anchor:=.Range("B1"), Address:=path, TextToDisplay:=path
End With
End Sub
Excel公式:
=HYPERLINK("L:\Docs\Expenditure\Purchase Orders\F0039XX\" & A1 & ".xls",A1 & " Location")