Excel VBA合并csv和总和值

Excel VBA合并csv和总和值,vba,excel,merge,Vba,Excel,Merge,我需要合并以下格式的报告列表 第1列是一个数字 第2列是一个字符串 最大行数是动态的 将第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 Rep

我需要合并以下格式的报告列表

  • 第1列是一个数字
  • 第2列是一个字符串
  • 最大行数是动态的
将第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
这合并了两个问题

  • 每个报告的第一个单元格将被报告文件名覆盖
  • 打开每个文件后,它会提示用户说剪贴板中有大量数据,我希望避免这种情况
  • 我认为下面的代码可能可以合并我的数据和求和值,但我不能确定,因为由于显示报告文件名,我当前的类型不匹配

    ' 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个。

    1)添加
    此工作簿。在
    ActiveCell.value=files(I)
    之前激活
    ,以避免覆盖问题<代码>此工作簿
    始终指运行宏的工作簿


    2) 在工作簿的数据集之前添加
    Application.CutCopyMode=False
    。关闭
    以处理剪贴板提示问题。

    第2个问题已解决,但第1个问题不起作用,此工作簿似乎没有活动单元格。