Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用多个Excel文件_Excel_Qtp - Fatal编程技术网

使用多个Excel文件

使用多个Excel文件,excel,qtp,Excel,Qtp,我有十个Excel文件,名称为A1、A2、A3、A4、A5、A6、A7、A8、A9和A10(都是.xlsx格式)。我的要求是单独读取每个Excel,添加一些公式,并根据某些条件过滤数据,然后将第五列数据(不包括标题(第一行))复制到另一个Excel 我做了一些类似的事情,但这只是一张Excel表格。我不知道如何为多个Excel文件更改它 “开始 DataTable.AddSheet "Sheet1" DataTable.ImportSheet "A:\Trail 1\Data.xlsx","Sh

我有十个Excel文件,名称为A1、A2、A3、A4、A5、A6、A7、A8、A9和A10(都是.xlsx格式)。我的要求是单独读取每个Excel,添加一些公式,并根据某些条件过滤数据,然后将第五列数据(不包括标题(第一行))复制到另一个Excel

我做了一些类似的事情,但这只是一张Excel表格。我不知道如何为多个Excel文件更改它

“开始

DataTable.AddSheet "Sheet1"
DataTable.ImportSheet "A:\Trail 1\Data.xlsx","Sheet1","Sheet1"
RowCount= DataTable.GetSheet("Sheet1").GetRowCount

Set objexcel = CreateObject("excel.application") 
Set objWorkbook = objExcel.WorkBooks.Open ("A:\Trail 1\Data.xlsx")
Set objSheet = objWorkbook.Worksheets(1)

objexcel.Visible=false

objexcel.Rows(1).Insert
objexcel.Columns(2).Insert
objexcel.Columns(2).Insert

objSheet.cells(1,1).value="Minutes Interval"
objSheet.cells(1,2).value="Hour Interval"
objSheet.cells(1,3).value="Hourly Filter"
objSheet.cells(1,4).value="HH:MM:SS"
objSheet.cells(1,5).value="Weight(g)"

For i = 2 To RowCount+2 Step 1

objSheet.cells(i,2).value="=A"&i&"/60"
objSheet.cells(i,3).value="=INT(B"&i&")=B"&i

Next

ObjSheet.cells(2,3).autofilter 3,"True"
Set objRange = objSheet.Range("A1")  
objWorkbook.Worksheets(1).UsedRange.Copy '--- to copy entire sheet data to    an intermediate excel

Set objWorkbookn= objExcel.Workbooks.Open ("A:\Trail 1\In   termediateExcel.xlsx")
Set objSheetn = objWorkbookn.Worksheets(1)
objWorkbookn.Worksheets(1).Range("A1").PasteSpecial Paste =xlValues '-- pasted here on intermediate excel
Set objWorkbook2= objExcel.Workbooks.Open ("A:\Trail 1\Result.xlsx") '--- open result excel file   

objSheetn.Activate  '-activate the intermediate sheet and get row count
rc=objWorkbookn.Worksheets("Sheet1").UsedRange.rows.count
Set src = objWorkbookn.Worksheets(1)
Set dest = objWorkbook2.Worksheets(1)
Const sourceColStart = 5
Const destColStart = 5
Const destRowStart = 2 'current row
Const destRowStart = 2 'current row
Dim currentRow 
currentRow = destRowStart


For i = 0 To rowcount
    dest.Cells(currentRow,destColStart).Value = src.Cells(currentRow, sourceColStart)
    currentRow = currentRow + 1
Next

objWorkbook.save
objWorkbook.close
objWorkbook2.save
objWorkbook2.close
objWorkbookn.save
objWorkbookn.close

'结束

我自己使用了类似于以下的方法来循环文件。在目录中循环也是另一种选择。已经有一些帖子可以搜索了

Dim filesToOpen

filesToOpen = Application.GetOpenFilename( _
    FileFilter:="Excel 97-2003 Files (*.xls*), *.xls*", _
    Title:="Excel files to Open", _
    MultiSelect:=True)

For i = LBound(FilesToOpen) To UBound(FilesToOpen)

objWorkbookn = Workbooks.Open(filesToOpen(i))

'do stuff

Next i