我有一个公式从不同工作表上的单元格中提取数据并将其链接到该单元格。 =HYPERLINK("#"&ADDRESS(ROW(Sheet2!A2), COLUMN(Sheet2!A2), 4, 1, "Sheet2"), Sheet2!A2)
我想知道是否可以将它链接到单元格并同时突出显示该行?什么都有帮助,谢谢。
这是一个解决方法,可以让你继续使用HYPERLINK()
把它放在一个常规模块中:
Public Function Go(Addr)
Dim arr, rng
arr = Split(Addr, "!")
Set rng = ThisWorkbook.Sheets(Replace(arr(0), "'", "")).Range(arr(1))
rng.EntireRow.Interior.Color = vbYellow '<< set row color
Set Go = rng '<< return where to link to
End Function
然后修改您的超链接:
=HYPERLINK("#Go("""&ADDRESS(ROW(Sheet2!A2), COLUMN(Sheet2!A2), 4, 1, "Sheet2") & """)", Sheet2!A2)
这是有效的,因为超链接地址可以是函数调用 - 只要函数知道要返回的范围作为您要去的链接目标。该函数可以在返回之前执行其他操作,例如在这种情况下突出显示一行。可能需要添加一些代码来清除以前的亮点。
要添加,因为我认为这很有用:您可以使用此方法而不是将命令按钮添加到数据表中的行 - 如果您需要“动作”,例如编辑/保存,您可以创建两个函数:
Public Function EditRow(rowNum)
Debug.Print "Set up editing for row " & rowNum
Set EditRow = ActiveSheet.Cells(rowNum, 1) '<< link back to same cell
End Function
Public Function SaveRow(rowNum)
Debug.Print "Saving row " & rowNum
Set SaveRow = ActiveSheet.Cells(rowNum, 2) '<< link back to same cell
End Function
然后每行有几个超链接:
=HYPERLINK("#EditRow(" & ROW() & ")","Edit")
=HYPERLINK("#SaveRow(" & ROW() & ")","Edit")
唯一的缺点是,以这种方式调用它们时无法调试函数。