【发布时间】:2014-01-17 13:05:37
【问题描述】:
我创建了一个 sub 来在我的 Excel 2010 工作簿中创建超链接,它适用于我的所有目的,除了一个。
我有一个用例,其中 sub 应该为文本值创建一个带有任务编号的链接,格式为“00.00”。传递一个字符串参数作为超链接的文本值修剪尾随的 0,即如果我传递“12.10”作为我的任务编号,变量观察器在调试器中显示一致的“12.10”值,但单元格显示“12.1”,即使我将整列预格式化为“文本”单元格。
在您建议将任务编号视为数字之前:它看起来像一个数字,但事实并非如此。它是两件事的串联,在所有使用情况下都需要是一个字符串。
这是子:
-
sSheet: 添加链接的工作表 -
sColumn: 超链接单元格的列 -
sRow: 超链接单元格的行 -
sTargetSheet:链接目标工作表名称 -
sAddress:链接目标单元格地址 -
sText: 显示链接文本(这是我的问题参数)
Sub CreateLink(sSheet As String, sColumn As String, sRow As String, sTargetSheet As String, _
sAddress As String, sText As String)
Dim sSubAddress As String
If sTargetSheet = "" Then
sSubAddress = ""
ElseIf sAddress <> "" Then
sSubAddress = "'" & sTargetSheet & "'!" & sAddress
End If
With Sheets(sSheet)
.Hyperlinks.Add Anchor:=.Range(sColumn & sRow), _
Address:="", _
SubAddress:=sSubAddress, _
TextToDisplay:=sText
End With
End Sub
这会创建我想要的任何链接,无论它们是指向单元格还是通过 Worksheet_FollowHyperlink 调用激活宏。
如果出现问题,我想设置一个带有文本格式“99.99”的超链接的单元格。
我已经将创建这些链接的整个列硬设置为文本,并通过将 value 参数作为字符串传递来调用 Sub,就像这样(原始变量也是一个字符串,但 Call 强制我转换为无论如何都是字符串)。
Call CreateLink("Tasks", "A", CStr(nextRow), "", "", CStr(nextTaskNumber))
我不知道如何强制 .Hyperlinks.Add 子按原样传递值。我观察变量,直到最后nextTaskNumber 的结尾都是 0,但单元格只是丢失了它。
如何确保单元格不会修剪 0?
【问题讨论】: