批量超链接批量合并拆分excel工作表

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

批量链接

首先新建一个目录页工作表,然后按下Ctrl+F3键,调出自定义名称对话框,取名为X,在“引用位置”框中输入:

=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1))+1,100) ,确定。然后用HYPERLINK函数批量插入连接,方法是:在目录页工作表,比如A2单元格输入公式:

=HYPERLINK("#'"&INDEX(X,ROW())&"'!A1",INDEX(X,ROW())) ,拖动填充柄,将公式向下填充,直到出错为止,目录就生成了。

利用以上两种方法都可以实现工作表间的关联链接。为了更加方便,也可以在除了目录页的其余工作表,制作一个返回目录的超链接。

如果是工作表,可以用下面的代码实现。

假设目录放在sheet1的A列,从A1依次向下排列。

右击sheet1标签》查看代码》将第一段代码粘贴进去后按F5运行

再将第2段代码贴进去

单击A列任意单元格,就会跳转到对应工作表中。

Sub 添加工作表()

On Error Resume Next

Dim a()

E = [a65536].End(xlUp).Row

a = Range("a1:a" & E).Value

For r = 1 To E

Application.Sheets.Add

= a(r, 1)

Next

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With Target

If .Cells.Count > 1 Then Exit Sub

If .Column > 1 Then Exit Sub

Sheets(.Value).Select

End With

End Sub

批量合并工作表,前提是将待合并的工作表放入同一文件夹中

Sub 合并()

Dim FilesToOpen

Dim x As Integer

On Error GoTo ErrHandler

Application.ScreenUpdating = False

FilesToOpen = Application.GetOpenFilename(FileFilter:="MicroSoft Excel文件(*.xls), *.xls", MultiSelect:=True, Title:="要合并的文件")

If TypeName(FilesToOpen) = "Boolean" Then

MsgBox "没有选中文件"

GoTo ExitHandler

End If

x = 1

While x <= UBound(FilesToOpen)

Workbooks.Open Filename:=FilesToOpen(x)

Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) x = x + 1

Wend

ExitHandler:

Application.ScreenUpdating = True

Exit Sub

ErrHandler:

MsgBox Err.Description

Resume ExitHandler

End Sub

第二种命令

Sub 合并()

Application.ScreenUpdating = False

Application.EnableEvents = False

MyPath = ActiveWorkbook.Path

ActiveName =

MyName = Dir(MyPath & "\" & "*.xls")

i = 0

Do While MyName <> ""

If MyName <> ActiveName Then

Set Wb = Workbooks.Open(MyPath & "\" & MyName)

i = i + 1

With Workbooks(1).ActiveSheet

For j = 1 To Sheets.Count

Wb.Sheets(j).Copy before:=Workbooks(ActiveName).Sheets(1)

Next

Wbn = Wbn & Chr(13) &

Wb.Close False

End With

End If

MyName = Dir

Loop

MsgBox "共合并了" & i & "个工作薄,如下:" & Chr(13) & Wbn, , "工作簿合并" Application.ScreenUpdating = True

Application.EnableEvents = True

End Sub

批量拆分工作薄

Sub SaveSeparately()

Dim sht As Worksheet

Application.ScreenUpdating = False

ipath = ThisWorkbook.Path & "\"

For Each sht In Sheets

sht.Copy

ActiveWorkbook.SaveAs ipath & & ".xls"

ActiveWorkbook.Close

Next

Application.ScreenUpdating = True

End Sub

相关文档
最新文档