我不相信如果没有宏,这将是可能的。
Excel 单元格中的超链接与单元格的值无关。它是与单元格相关联的单独对象。向单元格添加超链接的完整功能方法是通过 Excel 菜单项插入 -> 超链接。
当用户输入诸如“http://...”、“https://...”或“ftp://...”之类的值时添加超链接的事实只是一个 GUI 快捷方式,与插入 -> 超链接具有相同的效果。在您的示例中,当用户“触摸”单元格时,他们有效地将“http://...”值输入到单元格中,并调用 Insert -> Hyperlink 的 GUI 快捷方式。但是,当通过 VBA 或内置 Excel 功能(例如数据 -> 导入外部数据)以编程方式将值输入单元格时,不会调用快捷方式。
出于这个原因,让这些任意数据导入在没有某种形式的宏的情况下将适当的值呈现为超链接确实是一个挑战。如果您可以说服您的用户安装一个简单的 Excel 插件,您可以提供一个菜单项,该菜单项运行以下简单代码:-
Dim cell as Range : For Each cell in Selection.Cells // could also use Range("A1").CurrentRegion.Cells or similar
If Left(cell.Value, 7) = "http://" Or Left(cell.Value, 8) = "https://" Or Left(cell.Value, 6) = "ftp://" Then
Call cell.HyperLinks.Add(cell, cell.Value)
End If
Next cell
用户可以在导入/刷新数据后调用它。显然它远非理想,因为它依赖于用户采取额外的步骤来呈现超链接。