我在一个文件夹中有多个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
答案 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