复制并粘贴到文件夹中的所有文件

时间:2016-10-10 22:01:11

标签: excel-vba vba excel

我正在尝试从一个文件中复制工作表,然后将其粘贴到已建立文件夹中的大约6个文件中的已建立选项卡中。我有这个代码,但它只适用于该文件夹中的第一个文件。它也出于某种原因创建了一个空白的工作簿。有什么建议?

using (var db = new PlaceDBContext())
{
    Parallel.ForEach(db.Companies.Where(x => x.CheckedCompaniesHouse == true).ToList(),async (c) =>
    {
        c.CheckedCompaniesHouse = false;
        await db.SaveChangesAsync();
    });
}

1 个答案:

答案 0 :(得分:0)

Sub LoopThroughFiles_Paste_Roster()

Dim wbk As Workbook'新工作簿,数据被添加到 Dim Filename As String Dim FirstFile As String Dim FileDirectory As String Dim x As Workbook Dim y As Workbook

设置x = Workbooks.Open(“复制文档1”) 设置y = Workbooks.Open(“复制文档2”)

'显示文件夹选择器对话框,以便用户可以选择文件夹 使用Application.FileDialog(msoFileDialogFolderPicker)

.Title = "Please select a folder"
.AllowMultiSelect = False
.Show

If .SelectedItems.Count = 0 Then
    MsgBox "You did not select a folder"
    Exit Sub
Else
    FileDirectory = .SelectedItems(1) & "\"
End If

结束

'使用Dir检索文件夹中第一个文件的名称 Filename = Dir(FileDirectory) FirstFile =文件名

'循环浏览文件夹中的所有文件 '打开文件

Do Until Filename =“”

设置wbk = Workbooks.Open(FileDirectory& Filename,UpdateLinks:= False,密码:=“Password123”)

With wbk

    x.Sheets("report").UsedRange.Copy

    wbk.Sheets("roster").Range("a1").PasteSpecial

     y.Sheets("Setup").UsedRange.Copy

    wbk.Sheets("PTO Taken and Req").Range("a1").PasteSpecial


   End With

'保存并关闭文件 '获取文件夹中的下一个文件     wbk.Close savechanges:= True     Filename = Dir

循环

MsgBox“所有页面都已更新”

End Sub

相关问题