Excel VBA 代码实现 Sheet 数据复制:完整示例及动态文件名处理
以下是一个使用 VBA 代码实现将一个 Excel 工作簿中的一个工作表的数据复制到另一个工作簿中的相同工作表的示例代码:
Sub CopySheetData()
Dim sourceWorkbook As Workbook
Dim destinationWorkbook As Workbook
Dim sourceSheet As Worksheet
Dim destinationSheet As Worksheet
Dim sourceFilePath As String
Dim destinationFilePath As String
Dim sourceFileName As String
Dim sourceFileNumber As String
' 设置源文件名
sourceFileName = "Runing_Project_Status_560A_00000000.xlsx"
' 提取后八位数字
sourceFileNumber = Right(sourceFileName, 8)
' 设置源文件路径
sourceFilePath = "C:\路径\Runing_Project_Status_560A_" & sourceFileNumber & ".xlsx"
' 设置目标文件路径
destinationFilePath = "C:\路径\目标文件.xlsx"
' 打开源文件
Set sourceWorkbook = Workbooks.Open(sourceFilePath)
' 打开目标文件
Set destinationWorkbook = Workbooks.Open(destinationFilePath)
' 设置源工作表
Set sourceSheet = sourceWorkbook.Sheets("data")
' 设置目标工作表
Set destinationSheet = destinationWorkbook.Sheets("data")
' 复制数据
sourceSheet.UsedRange.Copy destinationSheet.Range("A1")
' 关闭源文件,保存更改
sourceWorkbook.Close SaveChanges:=False
' 关闭目标文件,保存更改
destinationWorkbook.Close SaveChanges:=True
' 释放内存
Set sourceWorkbook = Nothing
Set destinationWorkbook = Nothing
Set sourceSheet = Nothing
Set destinationSheet = Nothing
MsgBox "数据已成功复制。"
End Sub
在上面的示例代码中,你需要修改以下两行代码中的文件路径:
' 设置源文件路径
' sourceFilePath = "C:\路径\Runing_Project_Status_560A_00000000.xlsx"
' 设置目标文件路径
' destinationFilePath = "C:\路径\目标文件.xlsx"
将路径修改为实际的源文件和目标文件的路径。
对于被复制的 Excel 文件名的后八位数字是变化的情况,可以使用 VBA 中的字符串函数 Right 来提取后八位数字。代码示例如下:
Dim sourceFileName As String
Dim sourceFileNumber As String
' 设置源文件名
' sourceFileName = "Runing_Project_Status_560A_00000000.xlsx"
' 提取后八位数字
' sourceFileNumber = Right(sourceFileName, 8)
然后,使用 sourceFileNumber 变量来构建源文件路径:
' 设置源文件路径
' sourceFilePath = "C:\路径\Runing_Project_Status_560A_" & sourceFileNumber & ".xlsx"
将路径中的 "C:\路径\" 修改为实际的文件路径。
希望以上示例代码对你有帮助!
原文地址: https://www.cveoy.top/t/topic/o0vj 著作权归作者所有。请勿转载和采集!