简体   繁体   English

如何创建循环以打开特定文件并保存到每个循环的特定选项卡

[英]how to create a loop to open specific file and save to specific tab for each loop

I am trying to create a loop to open specific file and save to specific tab for each loop.我正在尝试创建一个循环来打开特定文件并保存到每个循环的特定选项卡。

loop 1, open file1 then save to sheet1循环 1,打开 file1 然后保存到 sheet1

loop 2, open file2 then save to sheet2循环2,打开file2然后保存到sheet2

loop 3, open file3 then save to sheet3循环 3,打开 file3 然后保存到 sheet3

But code below is doing looping nine times.但是下面的代码正在循环九次。

Loop1, open file1 then save to sheet1 Loop1,打开file1然后保存到sheet1

Loop2, open file2 then save to sheet2 Loop2,打开file2然后保存到sheet2

Loop3, open file3 then save to sheet3 Loop3,打开file3然后保存到sheet3

Etc… ETC…

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

This is happening because you are looping both the array of spreadsheets and files nested within each other.发生这种情况是因为您正在循环电子表格数组相互嵌套的文件。 As the number of sheets is meant to equal the number of files, you only need to loop one array, and use the same loop counter for both the file name and spreadsheet:由于工作表的数量等于文件的数量,您只需要循环一个数组,并为文件名和电子表格使用相同的循环计数器:

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

Regards,问候,

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM