在本文中,我们将创建一个宏以将单元格复制到文件夹中的所有工作簿。

我们已将一些示例Excel文件用作原始数据。这些文件包含员工的出勤详细信息。每个文件都包含日期,员工ID和员工姓名。我们要向该文件夹内的所有文件添加标题。

ArrowMain

ArrowFilesInFolder

ArrowRawData

运行宏时,会将H8到J10范围内的数据作为标题粘贴在文件夹内的所有Excel工作表中。

ArrowOutput

代码说明

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]