ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Excel failed on second trip - Error: 1004 (https://www.excelbanter.com/excel-programming/421446-excel-failed-second-trip-error-1004-a.html)

Jim Pan

Excel failed on second trip - Error: 1004
 
I create a routine that will read an excel file and send the content to a
text file. If there's only one excel file, the routine works. If there're
multiple, then the second call to that sub will failed with 1004 -
Application-defined or object-defined error
here is partial code below. PLEASE HELP.

Dim objExcel As Excel.Application
......

Set objExcel = New Excel.Application
objExcel.Workbooks.Open strFileName -- passed from calling routine
For R = 2 To Range("A65536").End(xlUp).Row -- FAIL HERE
.........
next R

objExcel.Quit
Set objExcel = Nothing


The second time, the error happend on "For" statement, the open statement
does not failed. I add "objExcel.Worksheets("Sheet1").Activate" as test, it
failed.

There's no EXCEL object from task manager.





Peter T

Excel failed on second trip - Error: 1004
 
If you are automating Excel you need to qualify everything back to the
application object

Set objWb = objExcel.Workbooks.Open(strFileName)
For R = 2 To objWb.Worksheets(1).Range("A65536").etc

or you might be able to get away with
objExcel.ActiveSheet.Range(etc
(if sure the correct wb is active)

Regards,
Peter T




"Jim Pan" wrote in message
...
I create a routine that will read an excel file and send the content to a
text file. If there's only one excel file, the routine works. If
there're
multiple, then the second call to that sub will failed with 1004 -
Application-defined or object-defined error
here is partial code below. PLEASE HELP.

Dim objExcel As Excel.Application
.....

Set objExcel = New Excel.Application
objExcel.Workbooks.Open strFileName -- passed from calling routine
For R = 2 To Range("A65536").End(xlUp).Row -- FAIL HERE
........
next R

objExcel.Quit
Set objExcel = Nothing


The second time, the error happend on "For" statement, the open statement
does not failed. I add "objExcel.Worksheets("Sheet1").Activate" as test,
it
failed.

There's no EXCEL object from task manager.







Jim Pan

Excel failed on second trip - Error: 1004
 
I have qualify the worksheet also, after that, everything worked. Thanks
for pointed out simple mistake. I was trying to have minimum code as my vb
module grew large.

Thanks!

"Peter T" wrote:

If you are automating Excel you need to qualify everything back to the
application object

Set objWb = objExcel.Workbooks.Open(strFileName)
For R = 2 To objWb.Worksheets(1).Range("A65536").etc

or you might be able to get away with
objExcel.ActiveSheet.Range(etc
(if sure the correct wb is active)

Regards,
Peter T




"Jim Pan" wrote in message
...
I create a routine that will read an excel file and send the content to a
text file. If there's only one excel file, the routine works. If
there're
multiple, then the second call to that sub will failed with 1004 -
Application-defined or object-defined error
here is partial code below. PLEASE HELP.

Dim objExcel As Excel.Application
.....

Set objExcel = New Excel.Application
objExcel.Workbooks.Open strFileName -- passed from calling routine
For R = 2 To Range("A65536").End(xlUp).Row -- FAIL HERE
........
next R

objExcel.Quit
Set objExcel = Nothing


The second time, the error happend on "For" statement, the open statement
does not failed. I add "objExcel.Worksheets("Sheet1").Activate" as test,
it
failed.

There's no EXCEL object from task manager.









All times are GMT +1. The time now is 05:10 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com