复制细胞的所有工作簿在Excel中使用VBA文件夹中
在本文中,我们将创建一个宏以将单元格复制到文件夹中的所有工作簿。
我们已将一些示例Excel文件用作原始数据。这些文件包含员工的出勤详细信息。每个文件都包含日期,员工ID和员工姓名。我们要向该文件夹内的所有文件添加标题。
运行宏时,会将H8到J10范围内的数据作为标题粘贴在文件夹内的所有Excel工作表中。
代码说明
FolderPath = Sheet1.TextBox1.Value上面的代码用于在文本框中分配值以提及变量。
Dir(FolderPath&“ * .xlsx”)
上面的代码用于获取指定文件夹路径中第一个文件的文件名。
而FileName <>“”
Count1 = Count1 +1 ReDim保留FileArray(1到Count1)
FileArray(Count1)= FileName FileName = Dir()
Wend上面的代码用于创建字符串数组。它包含文件夹中所有文件的文件名。
Workbooks.Open(FolderPath&FileArray(i))
上面的代码用于打开指定的工作簿。
SourceWB.Worksheets(1).Range(“ H8:J10”)。Copy DestWB.Worksheets(1).Range(“ A1:C3”)
上面的代码用于将标题从主工作簿复制到其他工作簿。
请遵循以下代码
Option Explicit Sub CopyingDataToFilesInFolder() 'Declaring variables Dim FileName, FolderPath, FileArray() As String Dim Count1, i As Integer Dim SourceWB, DestWB As Workbook 'Getting folder path from the text box FolderPath = Sheet1.TextBox1.Value If Right(FolderPath, 1) <> "\" Then FolderPath = FolderPath & "\" End If 'Getting the file name from the folder FileName = Dir(FolderPath & "*.xlsx") Count1 = 0 'Creating an array which consists of file name of all files in the folder While FileName <> "" Count1 = Count1 + 1 ReDim Preserve FileArray(1 To Count1) FileArray(Count1) = FileName FileName = Dir() Wend Set SourceWB = ThisWorkbook For i = 1 To UBound(FileArray) 'Opening the workbook Set DestWB = Workbooks.Open(FolderPath & FileArray(i)) 'Pasting the required header SourceWB.Worksheets(1).Range("H8:J10").Copy DestWB.Worksheets(1).Range("A1:C3") 'Closing the workbook DestWB.Close True Next Set DestWB = Nothing Set SourceWB = Nothing End Sub
如果您喜欢此博客,请在Facebook和Facebook上与您的朋友分享。
我们很希望收到您的来信,请让我们知道我们如何才能改善我们的工作并使您的工作更好。写信给我们[email protected]