【问题标题】:How do I open sheets and consolidate them into 1 file with multiple sheets?如何打开工作表并将它们合并到一个包含多个工作表的文件中?
【发布时间】:2011-06-13 14:57:25
【问题描述】:

我让用户在单元格 A1 到 A20 中输入 20 个商店编号。单元格 B1 到 B20 将具有每个商店编号所具有的超链接,例如:单元格 B1 到 B20 将具有以下公式:=HYPERLINK("C:\"Store Number "&A1&".xls")

  1. 如何一次打开所有这些超链接,而无需单击单元格 B1 到 B20(20 次)?
  2. 如果用户只想查看 10 个文件而不是 20 个文件怎么办?如果我创建了一个 VBA,它打开了单元格 B1 到 B20 中的所有超链接,但用户只输入了 10 个商店,我将遇到调试问题。
  3. 打开这些文件后,如何将它们合并为一个最多包含 20 个工作表/标签的文件?每个商店文件具有相同的格式并具有相同的工作表名称:“Sheet1”。

非常感谢您的帮助!

【问题讨论】:

  • =IF(A1"",HYPERLINK("C:\"店铺编号"&A1&".xls"),"")

标签: excel vba hyperlink consolidation


【解决方案1】:

这可能会让你开始第 3 部分。

Sub ConsolidateAllSheet1()

    Dim wbCons As Excel.Workbook
    Dim wb As Excel.Workbook
    Dim wbName As String

    Set wbCons = Workbooks.Add()
    For Each wb In Application.Workbooks
        wbName = wb.Name
        If wbName Like "Store Number*" And _
           wbName <> ThisWorkbook.Name Then

           wb.Sheets("Sheet1").Copy _
                 after:=wbCons.Sheets(wbCons.Sheets.Count)
           wbCons.Sheets(wbCons.Sheets.Count).Name = _
                   Replace(wbName, ".xls", "")

           'wb.Close False 'save without changes
        End If
    Next wb

End Sub

【讨论】:

    【解决方案2】:

    欢迎来到 StackOverflow。我为您的问题 1 和 2 here 找到了一个很好的答案。 (但正如 OP 所评论的,这些是用于网络超链接,而不是文件超链接。)

    我还没有用 VBA 解决 Q 3,但我已经手动完成了,方法是右键单击要复制的选项卡,然后在上下文弹出窗口中选择“移动或复制”。然后我将工作表复制到新创建的书中。

    编辑: 我建议您将超链接更改为纯文本。然后下面的 VBA 将打开所选单元格中的文件名。

    Dim fileName As String
    For Each vCell In Selection
        fileName = vCell.Value
        Workbooks.Open fileName
    Next vCell
    

    【讨论】:

    • 我认为他们指的是打开网址的超链接。
    猜你喜欢
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2021-11-25
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多