我需要以下列格式合并报告列表
以这样的方式对第1列中的数字求和(删除重复)
的字符串目前我正在使用此
合并csv文件Dim files() As String
files = AllFiles(GetFolder) 'returns array of files in folder
Dim i As Long
For i = 0 To UBound(files)
Windows("Monthly KB Page Access Report Generator.xls").Activate
ActiveCell.Value = files(i)
wrkbookvar2 = Dir(files(i))
ActiveCell.Offset(1, 0).Activate
Workbooks.Open Filename:=GetFolder & "\" & files(i)
Set dataset_workbook = ActiveWorkbook
Range(ActiveCell.SpecialCells(xlLastCell), Cells(1)).Copy
Windows("Monthly KB Page Access Report Generator.xls").Activate
Cells(ActiveCell.SpecialCells(xlLastCell).Row, 1).Select
ActiveSheet.Paste
dataset_workbook.Close
Next
这与2个问题合并
我认为以下代码可能会合并我的数据和总和值,但我无法确定,因为我目前的类型不匹配,因为报告文件名显示
' Sort
Windows("filename.xls").Activate
Columns("A:B").Sort Key1:=Range("B1"), Order1:=xlAscending
' merge
LastRow = ActiveSheet.UsedRange.Rows.Count
Set r = ActiveSheet.UsedRange.Resize(1)
With Application.WorksheetFunction
For iRow = 2 To LastRow
If Cells(iRow, 2) = Cells(iRow + 1, 2) Then
Cells(iRow, 1) = Cells(iRow, 1) + Cells(iRow + 1, 1)
Rows(iRow + 1).Delete
End If
Next iRow
End With
任何人都在帮我解决这个问题,我在VBA很糟糕。
更新: 通过删除
解决了1号问题Windows("Monthly KB Page Access Report Generator.xls").Activate
ActiveCell.Value = files(i)
wrkbookvar2 = Dir(files(i))
ActiveCell.Offset(1, 0).Activate
它们是我完全没注意到的旧版本的一部分。
一切正常,除非我需要调整我的'合并到一个值超过2个实例的帐户,现在它只会合并2。
答案 0 :(得分:2)
1)在ThisWorkbook.Activate
之前添加ActiveCell.Value = files(i)
以避免覆盖问题。 ThisWorkbook
始终引用宏运行的工作簿。
2)在Application.CutCopyMode = False
之前添加dataset_workbook.Close
以处理剪贴板提示问题。