Как открыть листы и объединить их в один файл с несколькими листами? - PullRequest
0 голосов
/ 13 июня 2011

У меня есть пользователь для ввода 20 номеров магазинов в ячейки с A1 по A20.Ячейки с B1 по B20 будут иметь гиперссылку, которая есть у каждого номера магазина, например: ячейки с B1 по B20 будут иметь следующую формулу: = HYPERLINK ("C: \" Номер магазина "& A1 &". Xls ")

  1. Как открыть все эти гиперссылки сразу, не щелкая ячейки B1-B20 (20 раз)?
  2. Что если пользователь хочет видеть только 10 файлов вместо 20? Если я создаю VBAэто открывает все гиперссылки в ячейках от B1 до B20, но пользователь вводит только 10 хранилищ, у меня возникнет проблема с отладкой.
  3. После того, как эти файлы открыты, как мне объединить их в 1 файл, содержащий до 20 листов /Вкладки? Каждый файл магазина имеет одинаковый формат и одно и то же имя листа: «Лист1».

Большое спасибо за помощь !!

Ответы [ 2 ]

0 голосов
/ 14 июня 2011

Это может помочь вам начать часть 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
0 голосов
/ 13 июня 2011

и добро пожаловать в StackOverflow. Я нашел хороший ответ на ваши вопросы 1 & 2 здесь . (Но, как прокомментировал ФП, они предназначены для веб-гиперссылок, а не для файловых гиперссылок.)

Я не решил вопрос 3 с VBA, но я сделал это вручную, щелкнув правой кнопкой мыши вкладку, которую нужно скопировать, и выбрав «Переместить или скопировать» во всплывающем окне контекста. Затем я копирую лист во вновь созданную книгу.

EDIT: Я бы предложил изменить гиперссылки на обычный текст. Затем следующий VBA откроет имена файлов в выбранных ячейках.

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