乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>excel函数</em>中<em>路径</em>的引用-exce

<em>excel函数</em>中<em>路径</em>的引用-exce

作者:乔山办公网日期:

返回目录:excel表格制作


。。。

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

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

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

如果不是特别需要,建议直接使用Excel的编辑超链接方法,里面有个链接到本文档中的位置选项。

移动文件路径后,公式zhidao当然要出错。办法如下:移动文件后,把两个文件都打开,在 统计.xls中,编辑,替换,查找处粘贴 Y:\TT212 QP\201 共享编辑文件\数据分析\报表\,替换处为 新的文件路径\数据分析\报表\,全部替换。完成。
建议仔细理解一下关于绝对引用和相对引用的概念:

Excel的单元格排列,相当于直角坐标系的第四象限
行从上向下排为1到66536行(以Excel2003版为例)
列从左向右排为A-IV

最左上的单元格为原点,即A1单元格
第二行 第3列,就是C2

单元格的引用分为相对引用和绝对引用
所谓相对引用,就是公式中引用的单元格随公式所在单元格位置的变化而变化
比如,B2中设置公式 =A2
当把B2复制,粘贴到B3时,B3的公式根据B2到B3的位置变化,相应地变成 =A3

所谓绝对引用,就是公式中引用的单元格不随公式所在单元格位置的变化而变化
仍如上例,B2中设置 =$A$2 ($号就是绝对引用的标志)
把B2公式向B3复制 其公式 仍为 =$A$2

假设B2的公式为 =$A2 则这就是所谓的混合引用
式中,列标前有$号,表示公式复制到其他位置时,列不发生变化,行号随之变化

而 =A$2 则表示公式复制到其他位置时,列变化,行不得变动

A1输入公=cell("filename")
B1输入公式=LEFT(CELL("filename"),FIND("[",CELL("filename"))-1)
C1输入公式=MID(CELL("filename",A1),FIND("[",CELL("filename"))+1,FIND("]",CELL("filename"))-FIND("[",CELL("filename"))-1)

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网