2016-06-28 8 views
0

내 코드가 기존 Excel 파일에 데이터를 저장하지 못합니다. 나는 엑셀 시트에 webtable에서 데이터를 복사하는 지역 창에서 볼 수 있지만 내가 당신 때문에 생각웹 테이블 내용을 qtp의 Excel 파일로 저장할 수 없습니다.

path = "D:\Demo\TestData\Shopping_Cart.xls" 

set xl= CreateObject("excel.application") 
xl.workbooks.open(path) 
set nsheet=xl.sheets.item(1) 

Set BrwsrCheckOut= Browser("name:=Checkout","title:=Checkout - Internet Explorer").page("title:=Checkout","name:=.*") 
Set DesPrdChcKOut = Description.Create 
DesPrdChcKOut("html tag").value = "TABLE" 
DesPrdChcKOut("column names").value = "Product Name;Model;Quantity;Price;Total" 

For IteratorRow = 1 To 2 

'BrwsrCheckOut.WebTable(DesPrdChcKOut).RowCount Step 1 
     For IteratorCol = 1 To 3 

     'BrwsrCheckOut.WebTable(DesPrdChcKOut).ColumnCount(1) Step 1 

    val = BrwsrCheckOut.WebTable(DesPrdChcKOut).GetCellData(IteratorRow, IteratorCol) 

    Next 

Next 
'xl.Activeworkbook.saveAs "D:\Demo\TestData\Shopping_Cart.xls" 
xl.Activeworkbook.save 
nsheet.SaveAs("D:\Demo\TestData\Shopping_Cart.xls") 
xl.ActiveWorkbook.Close 



Set xl = nothing 
Set nsheet = nothing 
+0

엑셀 파일을 데이터 테이블로 가져 와서 사용 가능한'Datatable' 함수를 사용하여 UFT 내에서 업데이트 한 다음 다시 내보내는 것을 고려 했습니까? 어쨌든 개체를 만드는 것보다 훨씬 간단합니다 ... – Dave

답변

1

여기 아무 잘못 실종 경우 올바른하십시오 details.Could을 저장할 수 없습니다 ActiveWorkbook 메서드를 사용하고 있습니다. 활성 통합 문서 방법을 사용하는 경우 다른 통합 문서가 열리거나 활성 상태가 아니므로주의해야합니다.

이 모든 것을 피하려면 다음 방법이 더 좋은 방법 일 수 있습니다.

path = "D:\Demo\TestData\Shopping_Cart.xls" 
Set oxl = CreateObject("Excel.Application") 
Set wbk = oxl.workbooks.open(path) 
sheetname = "Output" ' You can also refer the sheet by index 
Set sheet = wbk.sheets(sheetname) 

'Logic to retreive the data from webtable 
for i=1 to number_of_rows 
    ' update the data in excel 
next 

'Save the workbook 
wbk.save 
wbk.close 
oxl.quit 

가 작동하는지 알려주세요.

+0

한 번 해줘서 고마워요.하지만 엑셀 시트에 webtable 세부 정보가 아직 저장되지 않았습니다 –

+1

여기 실수를 알아 냈습니다. 내 코드에서'sheet.cells (row, col) = data'를 사용한다고 가정합니다. 감사합니다 –

+0

@ nandeshkalyankar, 솔루션에 자신의 답변을 추가 할 수 있으며 심지어 스스로 해결할 수 있다면 그것을 받아들입니다. –