Все файлы в каталоге survey
содержат одинаковую структуру.
Данные в x1.xls
:
Данные в x2.xls
:
Я хочу получить сумму столбцов b
и c
для обоих x1.xls
и x2.xsl
.
Результат для x1.xls
.
Та же сумма для x2.xls
.
Я могу сделать с помощью следующих шагов:
1.Откройте редактор VB в x1.xls
2. Отредактируйте ниже sub
и связать ctrl+z
с sub sum
.
Sub Sum()
Dim BottomOfTable As Long
BottomOfTable = Cells(Rows.Count, "A").End(xlUp).Row
Cells(BottomOfTable + 1, "A").Value = "score"
Range("B" & BottomOfTable + 1).Select
Selection.FormulaR1C1 = "=round(SUM(R[-" & BottomOfTable - 1 & "]C:R[-1]C)" & ",2)"
Selection.AutoFill Destination:=Range("b" & BottomOfTable + 1 & ":" & "c" & BottomOfTable + 1), Type:=xlFillDefault
Range("b" & BottomOfTable + 1 & ":" & "c" & BottomOfTable + 1).Select
End Sub
Различные файлы содержат разные строки, поэтому используйте Cells(Rows.Count, "A").End(xlUp).Row
, чтобы получить динамические c строки для разных файлов.
3. Нажмите ctrl+z
в x1.xls
.
4. Откройте x2.xls
и нажмите ctrl+z
.
Теперь я хочу автоматизировать процесс с помощью vba.
Вот моя попытка:
Sub ListDir()
Dim FileName As String
Dim myPath as string
myPath="d:\survey\"
FileName = Dir(myPath, vbNormal)
Do While FileName <> ""
targetFile = myPath & FileName
sumColumns(targetFile)
FileName = Dir()
Loop
End Sub
Function sumColumns(targetFile)
Dim BottomOfTable As Long, AK As Workbook
Set AK = Workbooks.Open(targetFile)
BottomOfTable = AK.Cells(Rows.Count, "A").End(xlUp).Row
Cells(BottomOfTable + 1, "A").Value = "score"
Range("B" & BottomOfTable + 1).Select
Selection.FormulaR1C1 = "=round(SUM(R[-" & BottomOfTable - 1 & "]C:R[-1]C)" & ",2)"
Selection.AutoFill Destination:=Range("b" & BottomOfTable + 1 & ":" & "c" & BottomOfTable + 1), Type:=xlFillDefault
Range("b" & BottomOfTable + 1 & ":" & "c" & BottomOfTable + 1).Select
AK.Close
End Function
Когда я выполняю sub ListDir()
x1.xsl
в редакторе vba, возникает ошибка:
и, возможно, есть некоторые другие ошибки в функции sumColumns
, как исправить, чтобы получить ожидаемую сумму результата для всех файлы в каталоге survey
?