Excel - 从不同 sheet 上的单元格提取数据,超链接并突出显示行
Excel - Pull data from a cell on a different sheet, hyperlink & highlight row
我有一个公式可以从另一个 sheet 和 link 上的单元格中提取数据到该单元格。 =HYPERLINK("#"&ADDRESS(ROW(Sheet2!A2), COLUMN(Sheet2!A2), 4, 1, "Sheet2"), Sheet2!A2)
我想知道是否可以 link 它到单元格并同时突出显示该行?有什么帮助,谢谢。
这是一个解决方法,可以让您继续使用 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 修改为:
=HYPERLINK("#Go("""&ADDRESS(ROW(Sheet2!A2), COLUMN(Sheet2!A2), 4, 1, "Sheet2") & """)", Sheet2!A2)
这是可行的,因为 hyperlink 地址可以是函数调用 - 只要该函数知道 return 的范围作为 link 目的地,你就可以开始了.不过,该函数可以在 returning 之前执行其他操作,例如在这种情况下突出显示一行。可能需要添加一些代码来清除以前的亮点。
添加,因为我认为这很有用:您可以使用这种方法而不是将命令按钮添加到数据表中的行 - 如果您需要诸如 edit/save 之类的“操作”,您可以创建两个函数:
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:
=HYPERLINK("#EditRow(" & ROW() & ")","Edit")
=HYPERLINK("#SaveRow(" & ROW() & ")","Edit")
唯一的缺点是在以这种方式调用时无法调试函数。
我有一个公式可以从另一个 sheet 和 link 上的单元格中提取数据到该单元格。 =HYPERLINK("#"&ADDRESS(ROW(Sheet2!A2), COLUMN(Sheet2!A2), 4, 1, "Sheet2"), Sheet2!A2)
我想知道是否可以 link 它到单元格并同时突出显示该行?有什么帮助,谢谢。
这是一个解决方法,可以让您继续使用 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 修改为:
=HYPERLINK("#Go("""&ADDRESS(ROW(Sheet2!A2), COLUMN(Sheet2!A2), 4, 1, "Sheet2") & """)", Sheet2!A2)
这是可行的,因为 hyperlink 地址可以是函数调用 - 只要该函数知道 return 的范围作为 link 目的地,你就可以开始了.不过,该函数可以在 returning 之前执行其他操作,例如在这种情况下突出显示一行。可能需要添加一些代码来清除以前的亮点。
添加,因为我认为这很有用:您可以使用这种方法而不是将命令按钮添加到数据表中的行 - 如果您需要诸如 edit/save 之类的“操作”,您可以创建两个函数:
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:
=HYPERLINK("#EditRow(" & ROW() & ")","Edit")
=HYPERLINK("#SaveRow(" & ROW() & ")","Edit")
唯一的缺点是在以这种方式调用时无法调试函数。