4

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

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

如果您直接从 SQL 或 CSV 文件中获取数据,则会发生相同的行为,我们在这里使用 SSAS 并没有什么特别之处。

有谁知道一种使这些自动呈现为链接的方法?我们无法控制电子表格的生成,因此宏不可用。

编辑:

刚收到Meff的回复。好点,但是我忘了提到我们显示 URL 的位置是钻取操作的目标。

4

4 回答 4

3

我不相信如果没有宏,这将是可能的。

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

用户可以在导入/刷新数据后调用它。显然它远非理想,因为它依赖于用户采取额外的步骤来呈现超链接。

于 2010-02-02T11:07:24.530 回答
1

看一下 SSAS 中的 URL 操作,这允许他们右键单击单元格并能够转到右键单击菜单中的链接:

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

于 2010-02-10T10:34:51.860 回答
1

没有VBA ....我发现最简单的方法就是录制一个宏并将快捷键(如ctrl -L)应用于宏。最终用户知道,如果他们想激活“链接”,他们点击 CTRL-L。我的宏被记录为.....突出显示列,单击数据,文本到列,下一个,下一个,下一个,完成)然后单击左上角的单元格 a1 以进行良好的测量。我不得不在 2013 年将文件另存为 xlsm 文件(不知道为什么)

于 2013-11-15T19:36:05.823 回答
0

手动更新许多链接的一种简单方法是使用将单元格设置为开始的超链接,然后仅将链接的值复制到已格式化的单元格。也就是说,在您的目标中,创建一个活动的超链接单元格并将其复制到该范围。验证单元格现在是否作为 html 链接处于活动状态。然后,获取您的“文本”超链接,并将新链接作为值粘贴到这些单元格的顶部,它们应该会激活。

于 2013-04-11T15:53:48.113 回答