下面是我在一个受保护的工作表上的代码的一部分,用于取消保护工作表,创建一个文件夹,创建一个超链接到它,打开文件夹并重新保护工作表。
在我保存电子表格之前,这一切都很正常--然后它将所有链接都截断到..\..\..\..\opserv_group\Enforcement\NRSWA\Licences...
,而不是\\Wbcphfil01.wbc.lan\dts\Groups\Operational_Services\opserv_group\Enforcement\NRSWA\Licences...
,使它们全部无效。有人能帮忙吗?
If .Value = "TTRO - Emergency" And Cells(i, 6) <> "" And Cells(i, 14) <> "" Then
ActiveSheet.Unprotect Password:="Licence19"
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 4), Address:="\\Wbcphfil01.wbc.lan\dts\Groups\Operational_Services\opserv_group\Enforcement\NRSWA\Licences\TTRO\Applications 2019-20\" & Cells(i, 4) & " (" & Cells(i, 12) & ")", TextToDisplay:=.Value
dirName = Cells(4, i).Values
MkDir ("\\Wbcphfil01.wbc.lan\dts\Groups\Operational_Services\opserv_group\Enforcement\NRSWA\Licences\TTRO\Applications 2019-20\" & Cells(i, 4) & " (" & Cells(i, 12) & ")")
Call Shell("explorer.exe" & " " & "\\Wbcphfil01.wbc.lan\dts\Groups\Operational_Services\opserv_group\Enforcement\NRSWA\Licences\TTRO\Applications 2019-20\" & Cells(i, 4) & " (" & Cells(i, 12) & ")", vbNormalFocus)
ActiveSheet.Protect Password:="Licence19", AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=False, AllowInsertingRows:=False, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=False, AllowDeletingRows:=False, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=False
3条答案
按热度按时间ql3eal8s1#
这可能是由设置“保存时更新链接”引起的,因为这是在保存工作簿时发生的。
在Excel中,尝试以下操作:
1.进入【文件】>【选项】>【高级】
1.找到部分一般(几乎在底部)
1.单击按钮Web选项
1.进入【文件】选项卡
1.取消选中复选框保存时更新链接
8zzbczxx2#
存储工作簿时,Excel将尽可能将所有超链接路径转换为相对路径。* 相对 * 表示相对于 * 超链接库 *。默认情况下,此 Hyperlink Base 是工作簿的路径。
因此,如果您的工作簿是
C:\test\wb1.xlsx
,并且您的超链接指向C:\test\subtest\testfile.txt
,则在存储工作簿之后,超链接将更改为.\subtest\testfile.txt
。如果您将整个文件夹C:\test
移动到不同的位置,但如果您只移动工作簿(或将其发送给其他人),则会很方便。为了防止这种情况,您可以将“超链接库”更改为“不可能”。该设置可以在Excel中找到,在屏幕右侧的文件->信息下(在属性下)。您可以在此处更改它,也可以使用
BuiltinDocumentProperties
通过VBA更改它:现在,当保存工作簿时,它将检查超链接是否相对于路径
"ABC"
,如果不是,则将它们存储为不变。wlzqhblo3#
如果你不想像我一样弄乱设置,只需存储屏幕提示的完整路径。
当需要调用原始路径时,使用相同的属性:
就是这样!