0

我有一个用户在单元格 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. 打开这些文件后,如何将它们合并为 1 个最多包含 20 个工作表/选项卡的文件?每个商店文件具有相同的格式并具有相同的工作表名称:“Sheet1”。

非常感谢你的帮忙!!

4

2 回答 2

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
于 2011-06-13T22:15:33.110 回答
0

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

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

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

Dim fileName As String
For Each vCell In Selection
    fileName = vCell.Value
    Workbooks.Open fileName
Next vCell
于 2011-06-13T16:38:02.890 回答