Как создать oop, чтобы открыть указанный файл c и сохранить на указанный вкладку c для каждого цикла - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь создать al oop, чтобы открыть указанный c файл и сохранить в заданную c вкладку для каждого l oop.

l oop 1, открыть файл1, затем сохранить на лист1

l oop 2, откройте файл2, затем сохраните на лист2

l oop 3, откройте файл3, затем сохраните на лист3

Но приведенный ниже код выполняет цикл девять раз.

Цикл1, откройте файл1, затем сохраните в лист1

Цикл2, откройте файл2, затем сохраните в лист2

Цикл3, откройте файл3, затем сохраните в лист3

И т.д.…

Sub Clear_Import()

Dim daily_download As String

Dim minutely_download As String

Dim hourly_download As String

ws = Range("ws")

Dim SpreadSheets(2) As String

Dim s As Integer

SpreadSheets(0) = "daily"

SpreadSheets(1) = "minutely"

SpreadSheets(2) = "hourly"

Dim Download_Filenames(2) As String

Dim f As Integer

Download_Filenames(0) = Range("Daily_download")

Download_Filenames(1) = Range("minutely_download")

Download_Filenames(2) = Range("hourly_download")

For f = LBound(Download_Filenames) To UBound(Download_Filenames)

For s = LBound(SpreadSheets) To UBound(SpreadSheets)


Sheets(SpreadSheets(s)).Select

Columns("A:AA").Select
Selection.ClearContents

Workbooks.Open (Download_Filenames(f))

ActiveSheet.Range("a1").CurrentRegion.Select

Selection.Copy

Workbooks(ws).Activate

Sheets(SpreadSheets(s)).Select

Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Application.CutCopyMode = False

Workbooks.Open (Download_Filenames(f))

ActiveWorkbook.Close


Next s, f

1 Ответ

0 голосов
/ 22 апреля 2020

Это происходит потому, что вы зацикливаете массив файлов и , вложенных друг в друга. Поскольку число листов должно равняться количеству файлов, вам нужно только l oop один массив и использовать один и тот же счетчик l oop для имени файла и электронной таблицы:

For f = LBound(Download_Filenames) To UBound(Download_Filenames)
    Sheets(SpreadSheets(f)).Select
    Columns("A:AA").Select
    Selection.ClearContents
    Workbooks.Open (Download_Filenames(f))
    ' etc.
Next f

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...