在多个Excel文件vba中计算数据

时间:2017-01-27 08:26:35

标签: excel vba excel-vba

我在一个文件夹中有多个xls文件。

在帮助工作表的G列:G列中,它有像O,R

这样的数据

我想分别计算O,R的总数并将其放在excel表中。

我有这个代码,请帮助它不执行循环

    Private Sub CommandButton2_Click()

Dim CSVfolder As String, _
    Xlsfolder As String, _
    fname As String, _
    wbook As Workbook, _
    SRange As Range, _
    k As Integer

Xlsfolder = "C:\Users\sam\Desktop\macro\macro\macro"

fname = Dir(Xlsfolder & "*.xls")
k = 5
Do While fnmae <> ""
Workbooks.Open (fnamme)

Set SRange = Workbooks(fname).Worksheets("Findings").Range("G:G")
Cells(3, k) = Application.CountIf(SRange, "O")
Cells(4, k) = Application.CountIf(SRange, "Cd")
Cells(5, k) = Application.CountIf(SRange, "Cr")
Cells(6, k) = Application.CountIf(SRange, "Cn")
Cells(7, k) = Application.CountIf(SRange, "A")
Cells(8, k) = Application.CountIf(SRange, "Cf")

Workbooks(fname).Close

Loop
End Sub

1 个答案:

答案 0 :(得分:1)

你可以做一些非常简单的事情,比如这个。

=('NAME_OF__SHEET'!A1)

NAME_OF__SHEET = "the name of your sheet" A1 = column, row

and your done!

或者,当然,您可以使用VBA将数据从多个文件导入到一个工作表中,并在那里进行处理。

Sub combine()

    Dim app As New Excel.Application
    app.Visible = False

    Dim wbM As Workbook
    Set wbM = Workbooks("main")

    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    fd.AllowMultiSelect = True
    Files = fd.Show

    For i = 1 To fd.SelectedItems.Count
        app.Workbooks.Open fd.SelectedItems(i)
    Next i

    Dim wb As Workbook
    For Each wb In app.Workbooks
        If wb.Name <> "main.xlsm" Then
            Dim wsN As Worksheet
            Set wsN = wbM.Sheets.Add(after:=wbM.Sheets(wbM.Sheets.Count))
            wsN.Name = wb.Name

            wbM.Sheets(wb.Name).Range("A1:K1").Value = wb.Sheets(1).Range("A1:K1").Value

            wb.Close SaveChanges:=False
        End If
    Next

    app.Quit
    Set app = Nothing

End Sub