vba调取指定名称(同文件夹下)工作簿的(第6-第16个)工作表名称 放到现有工作薄 的单元格内?

2025-04-03 14:28:57
推荐回答(2个)
回答1:

Sub 读取表名()

    If MsgBox("确定要重新读取表名吗?", vbOKCancel, "提示") = vbCancel Then Exit Sub

    Application.ScreenUpdating = False '关闭刷新

    Application.DisplayAlerts = False '关闭警告

    Dim i%, naw, nas, iluj, iwok

    naw = ActiveWorkbook.Name '记住当前工作簿文件名

    nas = ActiveSheet.Name '记住当前工作表名称

    iluj = "E:\其他\工作记录\" '【修改:要写入数据的工作簿路径】

    iwok = "行政处二次出库报表202001.xlsx" '【修改:要写入数据的工作簿文件名】

    Workbooks.Open (iluj & "\" & iwok) '打开工作簿

    Workbooks(naw).Activate '激活原工作簿

    Sheets(nas).Select '选中原工作表

    For i = 6 To 16 Step 1 '遍历6至16,步长为1

        Range("A" & i - 5) = Workbooks(iwok).Sheets(i).Name '读取工作表名写入A列(从A1向下写)

    Next '返回继续下一个遍历

    Workbooks(iwok).Close Savechanges:=True '关闭被代码打开的那个工作簿

    Application.DisplayAlerts = True '关闭警告

    Application.ScreenUpdating = True '开启刷新

    MsgBox "提取完毕!", , "提示" '完毕时弹窗提醒

End Sub

回答2:

Sub mm()
Dim wb As Workbook
Set wb = Workbooks.Open("AAA.xlsx") 'AAA为需要提取工作表名称的工作簿名称,可自行修改
For n = 1 To 11
ThisWorkbook.Sheets(1).Cells(n, 1) = wb.Sheets(n + 5).Name
Next
wb.Close
End Sub