我从SSAS服务器公开数据,用户可以从他们喜欢的任何工具(实际上通常是Excel 2007)连接到该服务器。我们希望在某些单元格中提供URL,并希望Excel将这些URL识别为超链接,并相应地激活和格式化。
当我们将URL放入单元格时,它只是呈现为纯文本。如果您触摸单元格并再次单击,则Excel会将其激活为链接。
如果您直接从SQL或CSV文件中获取数据,则会出现相同的行为,这里我们使用SSAS并没有什么特别之处。
有没有人知道如何自动将这些渲染作为链接?我们无法控制电子表格的生成,因此宏不存在。
刚收到Meff的回复。好的,但我忘了提到我们显示URL的地方是钻井行动的目标。
答案 0 :(得分:3)
如果没有宏,我不相信这是可能的。
Excel单元格中的超链接与单元格的值无关。它是与单元格关联的单独对象。向单元格添加超链接的全功能方法是通过Excel菜单项Insert - >超链接。
当用户输入诸如“http:// ...”,“https:// ...”或“ftp:// ...”之类的值时添加超链接的事实只是一个GUI快捷方式与Insert - >具有相同的效果超链接。在您的示例中,当用户“触摸”单元格时,它们有效地将“http:// ...”值输入到单元格和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
用户可以在导入/刷新数据后调用此方法。显然它远非理想,因为它依赖于用户采取额外步骤以呈现超链接。
答案 1 :(得分:1)
查看SSAS中的URL操作,这允许他们右键单击该单元格,并且可以转到右键单击菜单中的链接:
http://timlaqua.com/2009/03/ssas-cube-action-cells-target-type-url-action-type-example/
答案 2 :(得分:1)
没有VBA ....我发现最简单的方法就是录制一个宏&将快捷键(如ctrl -L)应用于宏。最终用户知道如果他们想要激活“链接”,他们会点击CTRL-L。 我的宏记录为......突出显示列,单击数据,文本到列,下一步,下一步,下一步,完成)然后单击左上角的单元格a1只是为了测量。我不得不在2013年将文件保存为xlsm文件(不确定原因)
答案 3 :(得分:0)
手动更新多个链接的一种简单方法是使用将单元格设置为开头的超链接,然后仅将链接的值复制到已格式化的单元格。也就是说,在目标中,创建一个活动的超链接单元格并将其复制到该范围。验证单元格现在是否为html链接。然后,获取“文本”超链接,并将新链接AS VALUES粘贴到这些单元格之上,它们应该激活。