我对以下内容进行了修改,因此链接会进入我选择的一张表中,但是我会收到错误,我很想知道是否有办法设置我选择的ws。我在网上看了,找不到解决办法。
Sub ListLinks()
Dim wb As Workbook
Set wb = Application.ActiveWorkbook
If Not IsEmpty(wb.LinkSources(xlExcelLinks)) Then
wb.Sheets.Add ' Amended this with my chosen sheet I want the links to go and I get errors after, declaring my variables, i.e ws as worksheet and the range
xIndex = 1
For Each link In wb.LinkSources(xlExcelLinks)
Application.ActiveSheet.Cells(xIndex, 1).Value = link
xIndex = xIndex + 1
Next link
End If
End Sub
我有一个工作簿,它有几个工作表,有两个外部链接指向两个不同的工作簿。
我无法使用左或右函数从单元格的VLOOKUP FORMULA中提取路径文件名到我选择的单元格,让我们以一个链接为例,让我们说我想将公式作为文本打印到单元格B1中,然后说C1将具有我想要将其更改为最新文件的路径。使用VBA更改文件。一旦更新了链接,B1和C1应该=相同的文件和路径位置。
如果我能做到这一点,那么我会试着看看是否可以将它应用到第二个链接。
有没有办法将单元格的公式打印为文本,然后使用左,中或右提取路径和文件位置。
我考虑过上面的vba代码,但它添加了一个新工作表,我无法将链接放入我选择的工作表中。我收到一个错误。我希望尽可能少地使用代码。我是VBA的新手,想法和帮助将不胜感激。
答案 0 :(得分:0)
如果您希望写入现有工作表,而不是添加工作表,则只需在书写行上指定工作表。因此,首先删除行wb.Sheets.Add
。然后修改写入行 - 将ActiveSheet
更改为Sheets("your sheet name")
。在这个例子中,我已经指定了一个名为“三明治”的现有工作表:
Sub ListLinks()
Dim wb As Workbook
Set wb = Application.ActiveWorkbook
If Not IsEmpty(wb.LinkSources(xlExcelLinks)) Then
xIndex = 1
For Each link In wb.LinkSources(xlExcelLinks)
Application.Sheets("sandwich").Cells(xIndex, 1).Value = link
xIndex = xIndex + 1
Next link
End If
End Sub
其他: 如果您希望从公式/链接获取路径,如果您使用Excel 2013或更高版本(在此示例中,您的链接位于单元格A1中),则无法使用VBA,您可以使用此类公式:
=SUBSTITUTE(SUBSTITUTE(MID(FORMULATEXT(A1),FIND("'",FORMULATEXT(A1),1)+1,(FIND("]",FORMULATEXT(A1),1)-FIND("'",FORMULATEXT(A1),1)-1)),"''","'"),"[","")