在Excel中自动超链接?

我从SSAS服务器公开数据,用户可以从他们喜欢的任何工具(实际上通常是Excel 2007)连接到这些数据。 我们希望在某些单元格中提供URL,并希望Excel将这些URL识别为超链接,并相应地进行激活和格式化。

当我们把一个URL放到一个单元格中时,它只是呈现为纯文本。 如果您触摸单元格并再次单击,则Excel将其作为链接激活。

如果您直接从SQL或CSV文件获取数据,则会出现相同的行为,这里没有关于我们使用SSAS的特殊信息。

有谁知道一种方法来使这些渲染为链接自动? 我们无法控制电子表格的生成,所以macros都没有了。

编辑:

刚刚收到了Meff的回复。 好的,但是我忘了提到我们显示URL的地方在钻探行动的目标。

如果没有macros观的话,我不相信这是可能的。

Excel单元格中的超链接与单元格的值无关。 这是一个与单元格相关的单独对象。 将超链接添加到单元格的全function方法是通过Excel菜单项“插入” – >“超链接”。

当用户input诸如“http:// …”,“https:// …”或“ftp:// …”之类的值时添加超链接就是一个简单的GUI快捷方式与Insert – > Hyperlink具有相同的效果。 在您的示例中,当用户“触摸”单元格时,他们有效地将“http:// …”值input到单元格中,并调用“插入” – >“超链接”的GUI快捷方式。 但是,当通过VBA或内置Excelfunction(例如数据 – >导入外部数据)以编程方式将值input到单元格中时,不会调用快捷方式。

出于这个原因,将这些任意数据导入提供适当的值作为超链接而没有某种forms的macros确实是一个挑战。 如果你可以说服你的用户安装一个简单的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 

用户可以在导入/刷新数据后调用它。 很明显,这是远远不够的,因为它依赖于用户采取额外的步骤,以使超链接呈现。

看看SSAS中的URL操作,这使得他们可以右键单击单元格,并可以在右键单击菜单中提供链接:

http://timlaqua.com/2009/03/ssas-cube-action-cells-target-type-url-action-type-example/

没有VBA ….我发现最简单的方法来做这个只是logging一个macros&应用快捷键(如CTRL -L)的macros。 最终用户知道,如果他们想要激活“链接”,他们点击CTRL-L。 我的macroslogging为…..突出显示列,点击数据,文本到列,下一个,下一个,下一个,完成),然后点击左上angular的单元格a1只是为了好的措施。 我不得不在2013年将该文件保存为xlsm文件(不知道为什么)

手动更新许多链接的简单方法是使用将单元格设置为超链接开始,然后仅将链接的值复制到已格式化的单元格。 也就是说,在您的目标中,创build一个活动的超链接单元格并将其复制到范围内。 validation单元格现在是否为html链接。 然后,把你的“文本”的超链接,并将新的链接作为价值粘贴在这些单元格的顶部,他们应该激活。