2016-02-13 45 views
0

截图例子行: ​​宏来查找和替换Excel中的部分链接

这是我第一次记录相对引用宏:我有一个主电子表格链接到许多

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 

其他个人电子表格。

在DN的值的所有分别引用相同的细胞在单独链接的片材是这样的:

='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

我在最后添加了一个编辑来尝试和澄清。 – beginningcoder1010

+0

我刚才看到这个问题,并且由于缺乏信息而拒绝尝试回应。 tbh,最重要的信息仍然缺失;例如[超链接对象](https://msdn.microsoft.com/en-us/library/office/ff839966.aspx)的**精确**“地址”和“子地址”参数或[HYPERLINK功能](https://support.office.com/zh-cn/article/HYPERLINK-function-333C7CE6-C5AE-4164-9C47-7DE9B76F577F)(以使用者为准)。 – Jeeped

回答

0

看起来您在列B中有名称,并且每个名称都有该名称的工作表。因此,这将在这些表格中创建超出范围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)