excel绝对路径引用怎么改成相对路径

发布网友 发布时间:2022-04-21 18:09

我来回答

5个回答

热心网友 时间:2023-06-29 05:28

Excel中绝对和相对引用使用F4键进行切换


Excel版本参考:2010

1、B2单元格输入=,选择a2单元格,按下F4键切换引用

2、行列前面都有$为绝对引用,拖动,不改变引用单元格地址

3、C2直接输入=A2,拖动公式改变

热心网友 时间:2023-06-29 05:29

。。。

想了一下,您的这个代码是一次性的。。。即意味着只在你本机上运行宏的时候运行一次,后面就不会运行了。那么超链接保存下来的信息就会被固定为最初的地址。

修改了一下你的代码:(主要部分注释一下便于大家的理解)

Sub Workbook_Open() '使用这个事件可以保证每次文档被打开的时候运行本宏。
Dim ws As Worksheet
Dim i As Integer
Dim ex As Boolean
i = 1
ex = False '是否已经存在“目录”表
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "目录" Then
ex = True
Exit For
End If
Next
If ex = False Then '如果不存在,则创建之。
ThisWorkbook.Worksheets.Add
Worksheets(i).Name = "目录"
End If
Worksheets("目录").Cells(i + 1, 1).Value = "序号"
Worksheets("目录").Cells(i + 1, 2).Value = "名称"
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "目录" Then
Worksheets("目录").Cells(i + 1, 1).Value = i - 1
Worksheets("目录").Cells(i + 1, 2).Value = Worksheets(i).Name

'其中iif语句为判断文档是否在盘符根目录下,即是否在 D:\ 之类的下面
Worksheets("目录").Hyperlinks.Add Cells(i + 1, 2), _
ThisWorkbook.Path & IIf(Right(ThisWorkbook.Path, 1) = "\", "", "\") & ThisWorkbook.Name, _
Worksheets(i).Name & "!A1", _
"单击跳转到" & Worksheets(i).Name, _
Worksheets(i).Name
End If
i = i + 1
Next
i = ThisWorkbook.Sheets.Count - 1
Worksheets("目录").Range("A3:A" & i + 2).HorizontalAlignment = xlCenter '这里直接使用Range的HorizontalAlignment相关属性是为了避免当前表不是“目录”时出错。下同。
Worksheets("目录").Range("B3:B" & i + 2).HorizontalAlignment = xlGeneral
Worksheets("目录").Range("B3:B" & i + 2).Font.ColorIndex = 5
Worksheets("目录").Range("B3:B" & i + 2).Font.Underline = xlUnderlineStyleNone
Worksheets("目录").Rows("2:2").Font.Bold = True
Worksheets("目录").Rows("2:2").HorizontalAlignment = xlCenter

End Sub

ps:使用此方法,需要在Excel开启VB宏,由此会带来很多安全隐患。根据微软Office2010的设置,文件的扩展名需要变为xlsm而不是xlsx,我不知道2003和2007是否也需要这么改。

如果不是特别需要,建议直接使用Excel的编辑超链接方法,里面有个链接到本文档中的位置选项。追问"直接使用Excel的编辑超链接方法",主要是我的很多excel文件里,都是有100个以上的sheet,用不了这个方法。谢谢哈

热心网友 时间:2023-06-29 05:29

Sub 提取目录()
Dim ws As Worksheet
Dim i As Integer
i = 1
ThisWorkbook.Worksheets.Add.Name = "目录"

Worksheets("目录").Cells(i + 1, 1).Value = "序号"
Worksheets("目录").Cells(i + 1, 2).Value = "名称"
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "目录" Then
i = i + 1
Worksheets("目录").Cells(i + 1, 1).Value = i - 1
Worksheets("目录").Cells(i + 1, 2).Value = ws.Name
Worksheets("目录").Hyperlinks.Add Cells(i + 1, 2), _
"", _
ws.Name & "!A1", _
"单击跳转到" & ws.Name, _
ws.Name
End If

Next
i = ThisWorkbook.Sheets.Count - 1
Worksheets("目录").Range("A3:A" & i + 2).Select
Selection.HorizontalAlignment = xlCenter
Worksheets("目录").Range("B3:B" & i + 2).Select
Selection.HorizontalAlignment = xlGeneral
Selection.Font.ColorIndex = 5
Selection.Font.Underline = xlUnderlineStyleNone
Worksheets("目录").Rows("2:2").Select
Selection.Font.Bold = True
Selection.HorizontalAlignment = xlCenter
End Sub

'Hyperlinks的说明,摘自Office帮助:
'Hyperlinks.Add (Anchor, Address, SubAddress, ScreenTip, TextToDisplay)
'Anchor 必选 Object 超链接的位置。可为 Range 或 Shape 对象。
'Address 必选 String 超链接的地址。
'SubAddress 可选 Variant 超链接的子地址。
'ScreenTip 可选 Variant 当鼠标指针停留在超链接上时所显示的屏幕提示。
'TextToDisplay 可选 Variant 要显示的超链接的文本。

'要想超链接在本文件内:将参数Address设为空""追问好的,谢谢,晚上有空就马上试一下^_^

热心网友 时间:2023-06-29 05:30

Sub 提取目录()
Dim ws As Worksheet
Dim i As Integer
i = 1
ThisWorkbook.Worksheets.Add.Name = "目录"
Worksheets("目录").Cells(i + 1, 1).Value = "序号"
Worksheets("目录").Cells(i + 1, 2).Value = "名称"
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "目录" Then
Worksheets("目录").Cells(i + 1, 1).Value = i - 1
Worksheets("目录").Cells(i + 1, 2).Value = Worksheets(i).Name
Worksheets("目录").Cells(i + 1, 2).FormulaR1C1 = "=HYPERLINK(""#" & Worksheets(i).Name & "!A1"",""点击跳转"")"

End If
i = i + 1
Next
i = ThisWorkbook.Sheets.Count - 1
Worksheets("目录").Range("A3:A" & i + 2).Select
Selection.HorizontalAlignment = xlCenter
Worksheets("目录").Range("B3:B" & i + 2).Select
Selection.HorizontalAlignment = xlGeneral
Selection.Font.ColorIndex = 5
Selection.Font.Underline = xlUnderlineStyleNone
Worksheets("目录").Rows("2:2").Select
Selection.Font.Bold = True
Selection.HorizontalAlignment = xlCenter

End Sub

热心网友 时间:2023-06-29 05:31

太高深了,只知道在公式里选择单位格编号按F4键。。。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com