I found on Microsoft site (http://support.microsoft.com/kb/306022) an example under the section ''Use Automation to transfer an array of data to a range on a worksheet''. I modified the example for QTP. Below is the code I use converted from the site to work in side QTP.
Dim oExcel
Dim oBook
Dim oSheet
sSampleFolder=''C:Temp''
sSampleFile=''Testfile.xls''
'Start a new workbook in Excel.
Set oExcel = CreateObject(''Excel.Application'')
Set oBook = oExcel.Workbooks.Add
'Create an array with 3 columns and 100 rows.
Dim DataArray(99, 3)
Dim r
For r = 0 To 99
DataArray(r, 0) = r
DataArray(r, 1) = Rnd() * 1000
DataArray(r, 2) = DataArray(r, 1) * 0.07
DataArray(r, 3) = ''Green Cows in Auguest Test::::''
Next
'Add headers to the worksheet on row 1.
Set oSheet = oBook.Worksheets(1)
oSheet.Range(''A1'').Value = ''Order ID''
oSheet.Range(''B1'').Value = ''Amount''
oSheet.Range(''C1'').Value = ''Tax''
'Transfer the array to the worksheet starting at cell A2.
oSheet.Range(''A2'').Resize(100, 4).Value = DataArray
'Save the Workbook and quit Excel.
oBook.SaveAs(sSampleFolder & sSampleFile )
Set oSheet = Nothing
Set oBook = Nothing
oExcel.Quit()
Set oExcel = Nothing