VBA超链接。添加可创建工作超链接,但文本显示在Excel 2010中不可见
我有一个基本的超链接。添加在VBA Excel 2007(Windows 7)中开发的调用,它可以正常工作。但是,使用Excel 2010的用户运行相同的程序,在写入超链接时,超链接可以工作(将鼠标悬停在单元格上,链接显示URL),但文本显示不显示。单元格是空白的 这是密码VBA超链接。添加可创建工作超链接,但文本显示在Excel 2010中不可见,vba,excel,hyperlink,Vba,Excel,Hyperlink,我有一个基本的超链接。添加在VBA Excel 2007(Windows 7)中开发的调用,它可以正常工作。但是,使用Excel 2010的用户运行相同的程序,在写入超链接时,超链接可以工作(将鼠标悬停在单元格上,链接显示URL),但文本显示不显示。单元格是空白的 这是密码 Private Sub Write_PartSpecPartDetails(ByRef p_wksCompDetailReport As Worksheet, p_lngRowNow As Long, p_strReturn
Private Sub Write_PartSpecPartDetails(ByRef p_wksCompDetailReport As Worksheet, p_lngRowNow As Long, p_strReturnedRecords() As String, p_typCDCols As CompDetailCols)
With p_wksCompDetailReport
.Range(p_typCDCols.strPartsSpecCol & p_lngRowNow).Value = p_strReturnedRecords(XML_ARRAY_PART_ELE)
.Range(p_typCDCols.strPartsSpecStatusCol & p_lngRowNow).Value = p_strReturnedRecords(XML_ARRAY_PS_STAT_ELE)
.Range(p_typCDCols.strOracleStatus & p_lngRowNow).Value = p_strReturnedRecords(XML_ARRAY_ORACLE_STAT_ELE)
.Hyperlinks.ADD Anchor:=.Range(p_typCDCols.strWebLinkCol & p_lngRowNow), _
Address:=ITB_WEBPN_URL & p_strReturnedRecords(XML_ARRAY_PART_ELE) & "?OpenDocument", _
TextToDisplay:=ITB_WEBPN_PREFIX & p_strReturnedRecords(XML_ARRAY_PART_ELE)
End With
End Sub
用户的文件保存为Excel 2003(.xls),不共享,但受保护。想法?问题在于受保护的工作表。虽然受保护的Excel 2007工作表允许格式化和添加超链接文本显示,而无需隐式设置,但在Excel 2010中,您似乎必须这样做。出于我的目的,我只是取消了对工作表的保护,让程序执行它的操作,然后在最后重置保护。因此,作为实际超链接例程的前身,我添加了一个清理例程
' Clear links and colour formatting from the WEBLink col etc: _Buggsie.178
With p_wksCompDetailReport
.Unprotect Password:=PROTECT_PASSWORD
If .Hyperlinks.Count > 0 Then
.Hyperlinks.Delete
End If
With .Range(p_typCDCols.strWebLinkCol & REPORT_DATA_ROW_START & ":" & p_typCDCols.strWebLinkCol & p_lngRowLast)
.Interior.ColorIndex = xlNone
.Cells.Clear
End With
End With
问题在于受保护的工作表。虽然受保护的Excel 2007工作表允许格式化和添加超链接文本显示,而无需隐式设置,但在Excel 2010中,您似乎必须这样做。出于我的目的,我只是取消了对工作表的保护,让程序执行它的操作,然后在最后重置保护。因此,作为实际超链接例程的前身,我添加了一个清理例程
' Clear links and colour formatting from the WEBLink col etc: _Buggsie.178
With p_wksCompDetailReport
.Unprotect Password:=PROTECT_PASSWORD
If .Hyperlinks.Count > 0 Then
.Hyperlinks.Delete
End If
With .Range(p_typCDCols.strWebLinkCol & REPORT_DATA_ROW_START & ":" & p_typCDCols.strWebLinkCol & p_lngRowLast)
.Interior.ColorIndex = xlNone
.Cells.Clear
End With
End With
这“对单元格应用自定义格式也可以得到类似的结果。只需使用格式”;;;“(这是三个分号,没有引号)并且单元格中的信息从视图中消失。同样,您仍然可以单击链接,即使它是不可见的。”但是,单元格偶然拥有这种格式会有点随机……这是什么?“对单元格应用自定义格式也可以得到类似的结果。只需使用格式”;;;“(这是三个分号,没有引号)并且单元格中的信息从视图中消失。同样,您仍然可以单击链接,即使它是不可见的。”但是,如果您不想取消对工作表的保护(在某些情况下可能是有利的),单元格偶然使用这种格式可能是随机的手动设置超链接后,只需编辑相应单元格的
.Value
属性即可添加“要显示的文本”:MyCell.Hyperlinks.add Anchor:=MyCell,Address:=“MyAddress”,TextToDisplay:=“MyText”
MyCell.Value=“MyText”,如果不想取消对工作表的保护(在某些情况下这可能是有利的)您可以在手动设置超链接后添加“要显示的文本”,只需编辑相应单元格的.Value
属性:MyCell.Hyperlinks.add Anchor:=MyCell,Address:=“MyAddress”,TextToDisplay:=“MyText”
MyCell.Value=“MyText”