?
Solved

VB6 & MS Excel - Runtime error '1004'

Posted on 2016-08-18
6
Medium Priority
?
367 Views
Last Modified: 2016-09-06
I have VB 6 application which read excel file as input file and generate excel .csv file as output, This is working fine on windows-xp, windows 7. But when i run application in windows 8.1 it is giving error as

Run-time error '1004':
Method '~' of object '~' failed.

I am using MS Excel 2013.

what could be reason for this.

Thanks in advance.
0
Comment
Question by:Nitin Shah
6 Comments
 
LVL 54

Accepted Solution

by:
Ryan Chong earned 1000 total points (awarded by participants)
ID: 41760636
quick check if there's any Missing References in your Macro?
how your code looks like when you define the Excel objects?

instead of using:
Dim xlsApp As Excel.Application
Set xlsApp = New Excel.Application
...

Open in new window

try use:
Dim xlsApp As Object
Set xlsApp = CreateObject("Excel.Application")
...

Open in new window

instead, that could help.
0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 41760640
We will need to see the code and to know where it fails,

If you are running from a compiled .exe, switch to running the source code in the VBA IDE to see the failure point.
0
 

Author Comment

by:Nitin Shah
ID: 41760658
Dear GrahamSkan,

I am not able to install vb6 on windows 8.1 profession.

Thanks
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:Nitin Shah
ID: 41760662
Dear Ryan Chong,

following is my code.

Option Explicit
'************************************************************
    Dim XLSBK                    As New Excel.Application
    Dim XLwsh                    As New Excel.Worksheet
'************************************************************
    Dim exRow As Long, exCol As Integer, SelRowPerFile As Integer, SelPerFileNo As Integer
    Dim InpRow As Long, InpCol As Integer, InpData As String, InpError As String, ErrSw   As Integer
'************************************************************
    Dim mvExcel As New Excel.Application
    Dim mvWSht As New Excel.Worksheet
    Dim fileName As String, SaveFileName As Double
'************************************************************


''command button to open excel file

Private Sub OpenExcelDataBase()
'**********************************************************************
 
    Dim fs
    Set fs = CreateObject("scripting.filesystemobject")
    SelExcelFileName = Trim(ctlSELEXECLFILENAME.Text)
    If Trim(Len(SelExcelFileName)) = 0 Then
       MsgBox "Select Excel file", vbCritical, Me.Caption
       Exit Sub
    End If
'**********************************************************************
    If Not fs.FileExists(SelExcelFileName) Then
        MsgBox "Warning - Not a valid Excel file name ", vbCritical
        Exit Sub
    End If
'**********************************************************************
    XLSBK.DefaultFilePath = SelExcelFileName
'**********************************************************************
    XLSBK.Workbooks.Open SelExcelFileName, , , , , , , , , True
    XLSBK.Visible = False
'**********************************************************************
    If Trim(Len(Trim(ctlEXCELNO.Text))) = 0 Then
       ctlEXCELNO.Text = "0"
    End If
'**********************************************************************
    If Trim(Len(Trim(ctlEXECLHEADER.Text))) = 0 Then
       ctlEXECLHEADER.Text = "0"
    End If
'**********************************************************************
    SelExcelNo = Trim(ctlEXCELNO.Text)
    SelExcelHeaderNo = Trim(ctlEXECLHEADER.Text)
    If SelExcelHeaderNo = 0 Then
       SelExcelHeaderNo = 1
    Else
        SelExcelHeaderNo = SelExcelHeaderNo + 1
    End If
    If SelExcelNo = 0 Then
       SelExcelNo = 1
    Else
       SelExcelNo = SelExcelNo ' + 1
    End If
    XLSBK.Sheets(SelExcelNo).Activate
    Set XLwsh = XLSBK.Sheets(SelExcelNo)
    Dim x As Integer
    x = XLSBK.Sheets.Count
    RowCount = XLSBK.Sheets(SelExcelNo).UsedRange.Rows.Count
    ctlRowCount = Format(RowCount, "0")
'**********************************************************************
   
End Sub
0
 
LVL 18

Assisted Solution

by:xtermie
xtermie earned 1000 total points (awarded by participants)
ID: 41760795
Hi, do as Ryan propose first
Dim xlsApp As Object
Set xlsApp = CreateObject("Excel.Application")

and then check to see if you invoke the application with the workfile name:
SET APPLICATION=GETOBJECT(,"EXCEL.APPLICATION")
myworkfile = "Financial-01_GG.xls"
Set myapp = Application.Workbooks(myworkfile)

Open in new window

Then do anything in Excel

Substitute APPLICATION with your EXCEL (i.e. XLSBK)
myworkfile with your variable for the workflie
and myapp with the combination of the two
0
 
LVL 18

Expert Comment

by:xtermie
ID: 41785792
Good comments and suggestions made and author did not get back to provide feedback
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you need to forecast numbers -- typically for finance -- the Windows and Mac versions of Excel 2016 have a basket of tools to get the job done.
Windows Explorer let you handle zip folders nearly as any other folder: Copy, move, change, and delete, etc. In VBA you can also handle normal files and folders, but zip folders takes a little more - and that you'll find here.
This Micro Tutorial will demonstrate how to use a scrolling table in Microsoft Excel using the INDEX function.
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question