excel - 如何打开多个工作表,将每个工作表中的列相加并保存?
问题描述
我试图为我的论文在 excel 中编写一个宏。我在一个文件夹中有多个 .xlsx 文件,每个文件都包含一个包含 9 列 (AI) 和不同行数的表。我想自动打开每个文件,在每列底部添加列的总和,然后保存文件。
我在堆栈溢出中找到了一个代码来选择一个包含 .csv 文件的文件夹,这些文件会自动打开并保存为同一文件夹中的 .xlsx 文件。我试图为我的目的修改代码。我唯一实现的就是更改代码以打开我文件夹的 .xlsx 文件。从那时起,我不知道如何继续,因为我对 VBA 没有任何经验。GetFolder() 是一个定义函数,它允许我浏览文件夹并找出它的路径。
私有子 CommandButton1_Click()
Dim myFolder As String
Dim getBook As String
Dim myCSVFile As String
Dim LastRow As Long
Application.DisplayAlerts = False
myFolder = GetFolder()
myXLSXFile = Dir(myFolder & "\*.xlsx")
Do While myXLSXFile <> ""
Workbooks.Open Filename:=myFolder & "\" & myXLSXFile
getBook = ActiveSheet.Name
ActiveSheet.Name = "Sheet1"
我认为此时在列末尾添加总和的代码应该是但我不确定
ActiveWorkbook.SaveAs Filename:=myFolder & Chr(92) & getBook, FileFormat:=51
ActiveWorkbook.Close False
myXLSXFile = Dir
Loop
结束子
解决方案
欢迎来到 SO :
总结你的专栏,你可能会使用这样的东西
SumA = Application.WorksheetFunction.Sum(columns("A:A"))
并将其放在每列的末尾,您将:
1 找到列的最后一行
lastrow = ActiveSheet.Cells(sht.Rows.Count, "A").End(xlUp).Row
2 将总和值存储到 las 单元格列中
Cells(lastrow,"A").value = SumA
您要做的最后一件事是对所有列进行循环并浏览所有文件:
编辑代码
Private Sub CommandButton1_Click()
Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer
Application.ScreenUpdating = False
directory = "C:\Users\ba-sc\Desktop\Fiji output\"
fileName = Dir(directory & "*.xl??")
Do While fileName <> ""
Workbooks.Open (directory & fileName)
Set sht = Workbooks(fileName).Worksheets("Sheet1")
LastColumn = Workbooks(fileName).Worksheets("Sheet1").Cells(1,Workbooks(fileName).Worksheets("Sheet1").Columns.Count).End(xlToLeft).Column
For i = 1 To LastColumn
SumA = Application.WorksheetFunction.Sum(Workbooks(fileName).Worksheets("Sheet1").Columns(i))
MsgBox SumA
lastrow = ActiveSheet.Cells(Workbooks(fileName).Worksheets("Sheet1").Rows.Count, i).End(xlUp).Row
Workbooks(fileName).Worksheets("Sheet1").Cells(lastrow + 1, i).Value = SumA
Next
'now save and close this workbook
Workbooks(fileName).Close SaveChanges:=True
fileName = Dir()
Loop
End Sub
输出 :
推荐阅读
- java - 在另一个页面上使用flutter列表方法并在相关页面上使用它
- python - 从 main 终止多处理进程
- javascript - 即使在 plugin-transform-runtime 安装之后,regeneratorRuntime 也没有定义 Gulp Babel v7
- c++ - 无法在 C++ 中找到运行选项 - VS Code
- python - 回归和 NN 模型在 75/25 训练/测试拆分期间表现良好,但之后则不然
- excel - Pddoc.Save 有错误数量的争论或无效的属性分配
- android - CameraX 中的 FLASH_MODE_TORCH
- mysql - 获取表格,按最喜欢的值排序
- html - Bootstrap 4,模型无法打开
- amazon-cloudwatch - AWS Aurora 缺少 CloudWatch 中的“[Billed] Volume Read IOPS (Count)、[Billed] Volume Read IOPS (Count)”等指标