这是我首次使用相对引用录制的宏:
ActiveCell.Offset(-2, -3).Range("A1:L1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(0, -1).Range("A1").Select
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Replace What:="Billy Bob", Replacement:="Joanne Sue", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
我有一个主电子表格链接到许多其他个人电子表格。
D-N中的值都分别引用单独链接表中的相同单元格,如下所示:
='G:\WORK\Test folder\Test\Employees\[Billy Bob.xlsx]Sheet1'!$E$2
C栏的链接引用B列中的值来填写链接名称,如下所示:
=HYPERLINK("G:\WORK\Test folder\Test\Employees\Billy Bob.xlsx",B3)
所以我基本上试图更改行中每个链接的名称部分。因此,如果我要在B列中输入另一个名称,那么宏或代码将在B中获取该名称并将其添加到C中的超链接和D-N中的所有工作表链接。
答案 0 :(得分:0)
看起来您在B列中有名称,每个名称都有一个名称的工作表。因此,这将在这些工作表中创建到Range A1的超链接。请务必将d s:\temp\hyper.xlsxd
替换为工作簿的实际路径。
Sub MakeHyperlinksColumnC()
Dim x As Long
Dim aCell As Range
Dim nm As String
For x = 2 To ActiveSheet.Columns("C").Cells.Count
Set aCell = ActiveSheet.Columns("C").Cells(x)
If Not IsEmpty(aCell.Offset(0, -1)) Then
nm = aCell.Offset(0, -1).Value
aCell.Formula = "=HYPERLINK(""[s:\temp\hyper.xlsx]'" & nm & "'!A1"",""" & nm & """)"
Else
Exit For
End If
Next
End Sub
我认为这比搜索和替换更有效。它也会跳过第一行并退出第一个空白单元格。
另一种方法
实际上你根本不需要代码;只需在C2中使用这样的公式然后复制:
=HYPERLINK("[s:\temp\hyper.xlsx]'"&B2&"'!A1",B2)