Ссылка листа на другой лист без обновления пути к файлу каждый раз? - PullRequest
0 голосов
/ 24 января 2020

Итак, я создал новый лист в новой книге, используя VBA. Это будет основной лист, в котором собраны данные из множества других листов различных рабочих книг. Я хочу иметь возможность выбрать новый файл / книгу и скопировать данные из этого листа в новый, который я создал. Данные, которые мне нужны, всегда находятся в одном месте.

Вот мой код:

'Display a Dialog Box that allows to select a single file.
'The path for the file picked will be stored in fullpath variable
  With Application.FileDialog(msoFileDialogFilePicker)
        'Makes sure the user can select only one file
        .AllowMultiSelect = False
        'Filter to just the following types of files to narrow down selection options
        .Filters.Add "Excel Files", "*.xlsx; *.xlsm; *.xls; *.xlsb", 1
        'Show the dialog box
        .Show
        'Store in fullpath variable
        fullpath = .SelectedItems.Item(1)
End With

Здесь я выберу файл, из которого я хотел бы извлечь данные, и установил для этого пути к файлу «полный путь».

'Paste concatenated file paths
    Application.ScreenUpdating = False
    Range("NewMarket").Select
    Application.Run "Copy"
    Application.Goto Reference:="Input"
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "='[fullpath]Inputs-Global'!R2C3"
    Range("Input").Select
    Application.Run "Copy"
    Application.Goto Reference:="NewMarket"
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

Здесь у меня, похоже, проблемы. Итак, у меня есть 10 блоков кода, которые похожи на это, за исключением того, что они вызывают данные из разных строк / столбцов. Каждый раз, когда я запускаю свой макрос, мне нужно выбрать файл, из которого я хотел бы получить данные из 10 раз для каждого диапазона, для которого я хочу получить данные. Так, например, у меня есть NewMarket, NewAddress, NewSales и др. c. У меня есть файл, к которому я хочу, чтобы эти данные приходили 10 раз.

У кого-нибудь есть идеи? Заранее спасибо, и я был бы рад уточнить любую часть этого. Я также могу опубликовать всю свою сабвуфер, если хотите, но она довольно длинная, так как я не написал ее эффективно.

...