Итак, я создал новый лист в новой книге, используя 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 раз.
У кого-нибудь есть идеи? Заранее спасибо, и я был бы рад уточнить любую часть этого. Я также могу опубликовать всю свою сабвуфер, если хотите, но она довольно длинная, так как я не написал ее эффективно.