如何打开工作表并将其合并为多个工作表的1个文件?

时间:2011-06-13 14:57:25

标签: excel vba hyperlink consolidation

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

这可能会让你开始第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