Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 37
Default Application_defined or object-defined error - Run 1004 error

Folks,

I am running into application_defined or object-defined error at the PROBLEM
LINE in following code below.

I am assuming that there are more same type error in the code. Please let
me know how to get around this.

Thanks,
Varun


Private Sub CommandButton1_Click()

Dim ddifn As String
Dim ddifnWkBk As Workbook

Dim Di As Variant
Dim Si As Variant
Dim fsl As Integer
Dim fdl As Integer
Dim sth As Integer
Dim dth As Integer
Dim x As Integer
Dim y As Integer


ddifn = Application.GetOpenFilename(FileFilter:="Excel Files, *.xls", _
Title:="Please select layer stackup file received from fab shop")

Set ddifnWkBk = Workbooks.Open(ddifn, , ReadOnly)

'create Temp worksheet

Call CreateTempSheet(ddifnWkBk)
ddifnWkBk.Close

endrows = Worksheets("Temp").UsedRange.Rows.Count

'Find Copper row and column

For copperRows = 1 To endrows
If Worksheets("Temp").Cells(a, b) = "Copper" Then <------PROBLEM LINE
cRow = a
cCol = b
Exit For
End If
Next copperRows

'Find laminate row and column

For laminateRows = 1 To endrows
If Worksheets("Temp").Cells(c, d) = "Laminate / PrePreg:" Then
lRow = c
lCol = d
Exit For
End If
Next laminateRows

'Find Impedance Requirements row and column

For impedance_rows = 1 To endrows
If Worksheets("Temp").Cells(m, n) = "Impedance Requirements:" Then
iRow = m
iCol = n
Exit For
End If
Next impedance_rows

'Find signal/copper layer thicknesses
'cRow is where copper starts and iRow is end (Impedance Requirements)

For i = cRow To iRow

If Worksheets("Temp").Cells(i, cCol) < "" Then
If fdl < 0 Then
Di(x) = dth
fdl = 0
x = x + 1
End If
sth = sth + Worksheets("Temp").Cells(i, cCol).Value
fsl = 1
dth = 0
End If

If Worksheets("Temp").Cells(i, lCol) < "" Then
If fsl < 0 Then
Si(y) = sth
fsl = 0
y = y + 1
End If
dth = dth + Worksheets("Temp").Cells(i, lCol)
fdl = 1
sth = 0
End If

Next i

Si(y) = sth

End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,565
Default Application_defined or object-defined error - Run 1004 error

You have not declared what "a" and "b" are equal to, nor their data types.

Dim a As Long, b As Long

a = #?
b = #?


"Varun" wrote in message
...
Folks,

I am running into application_defined or object-defined error at the
PROBLEM
LINE in following code below.

I am assuming that there are more same type error in the code. Please let
me know how to get around this.

Thanks,
Varun


Private Sub CommandButton1_Click()

Dim ddifn As String
Dim ddifnWkBk As Workbook

Dim Di As Variant
Dim Si As Variant
Dim fsl As Integer
Dim fdl As Integer
Dim sth As Integer
Dim dth As Integer
Dim x As Integer
Dim y As Integer


ddifn = Application.GetOpenFilename(FileFilter:="Excel Files, *.xls", _
Title:="Please select layer stackup file received from fab shop")

Set ddifnWkBk = Workbooks.Open(ddifn, , ReadOnly)

'create Temp worksheet

Call CreateTempSheet(ddifnWkBk)
ddifnWkBk.Close

endrows = Worksheets("Temp").UsedRange.Rows.Count

'Find Copper row and column

For copperRows = 1 To endrows
If Worksheets("Temp").Cells(a, b) = "Copper" Then <------PROBLEM LINE
cRow = a
cCol = b
Exit For
End If
Next copperRows

'Find laminate row and column

For laminateRows = 1 To endrows
If Worksheets("Temp").Cells(c, d) = "Laminate / PrePreg:" Then
lRow = c
lCol = d
Exit For
End If
Next laminateRows

'Find Impedance Requirements row and column

For impedance_rows = 1 To endrows
If Worksheets("Temp").Cells(m, n) = "Impedance Requirements:" Then
iRow = m
iCol = n
Exit For
End If
Next impedance_rows

'Find signal/copper layer thicknesses
'cRow is where copper starts and iRow is end (Impedance Requirements)

For i = cRow To iRow

If Worksheets("Temp").Cells(i, cCol) < "" Then
If fdl < 0 Then
Di(x) = dth
fdl = 0
x = x + 1
End If
sth = sth + Worksheets("Temp").Cells(i, cCol).Value
fsl = 1
dth = 0
End If

If Worksheets("Temp").Cells(i, lCol) < "" Then
If fsl < 0 Then
Si(y) = sth
fsl = 0
y = y + 1
End If
dth = dth + Worksheets("Temp").Cells(i, lCol)
fdl = 1
sth = 0
End If

Next i

Si(y) = sth

End Sub



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default Application_defined or object-defined error - Run 1004 error

a and b are not defined. Set a and b to some value before the FOR loop.

"Varun" wrote:

Folks,

I am running into application_defined or object-defined error at the PROBLEM
LINE in following code below.

I am assuming that there are more same type error in the code. Please let
me know how to get around this.

Thanks,
Varun


Private Sub CommandButton1_Click()

Dim ddifn As String
Dim ddifnWkBk As Workbook

Dim Di As Variant
Dim Si As Variant
Dim fsl As Integer
Dim fdl As Integer
Dim sth As Integer
Dim dth As Integer
Dim x As Integer
Dim y As Integer


ddifn = Application.GetOpenFilename(FileFilter:="Excel Files, *.xls", _
Title:="Please select layer stackup file received from fab shop")

Set ddifnWkBk = Workbooks.Open(ddifn, , ReadOnly)

'create Temp worksheet

Call CreateTempSheet(ddifnWkBk)
ddifnWkBk.Close

endrows = Worksheets("Temp").UsedRange.Rows.Count

'Find Copper row and column

For copperRows = 1 To endrows
If Worksheets("Temp").Cells(a, b) = "Copper" Then <------PROBLEM LINE
cRow = a
cCol = b
Exit For
End If
Next copperRows

'Find laminate row and column

For laminateRows = 1 To endrows
If Worksheets("Temp").Cells(c, d) = "Laminate / PrePreg:" Then
lRow = c
lCol = d
Exit For
End If
Next laminateRows

'Find Impedance Requirements row and column

For impedance_rows = 1 To endrows
If Worksheets("Temp").Cells(m, n) = "Impedance Requirements:" Then
iRow = m
iCol = n
Exit For
End If
Next impedance_rows

'Find signal/copper layer thicknesses
'cRow is where copper starts and iRow is end (Impedance Requirements)

For i = cRow To iRow

If Worksheets("Temp").Cells(i, cCol) < "" Then
If fdl < 0 Then
Di(x) = dth
fdl = 0
x = x + 1
End If
sth = sth + Worksheets("Temp").Cells(i, cCol).Value
fsl = 1
dth = 0
End If

If Worksheets("Temp").Cells(i, lCol) < "" Then
If fsl < 0 Then
Si(y) = sth
fsl = 0
y = y + 1
End If
dth = dth + Worksheets("Temp").Cells(i, lCol)
fdl = 1
sth = 0
End If

Next i

Si(y) = sth

End Sub

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Application_defined or object-defined error - Run 1004 error

In this code:

For copperRows = 1 To endrows
If Worksheets("Temp").Cells(a, b) = "Copper" Then <------PROBLEM LINE
cRow = a
cCol = b
Exit For
End If
Next copperRows

a and b have never been defined. So excel will treat them as 0's.

Maybe...

What column are you looking through to find "Copper"?

If it were column A, I would expect the code would look more like:
For copperRows = 1 To endrows
If Worksheets("Temp").Cells(CopperRows, "A") = "Copper" Then
cRow = copperrows
cCol = "A"
Exit For
End If
Next copperRows

Varun wrote:

Folks,

I am running into application_defined or object-defined error at the PROBLEM
LINE in following code below.

I am assuming that there are more same type error in the code. Please let
me know how to get around this.

Thanks,
Varun

Private Sub CommandButton1_Click()

Dim ddifn As String
Dim ddifnWkBk As Workbook

Dim Di As Variant
Dim Si As Variant
Dim fsl As Integer
Dim fdl As Integer
Dim sth As Integer
Dim dth As Integer
Dim x As Integer
Dim y As Integer

ddifn = Application.GetOpenFilename(FileFilter:="Excel Files, *.xls", _
Title:="Please select layer stackup file received from fab shop")

Set ddifnWkBk = Workbooks.Open(ddifn, , ReadOnly)

'create Temp worksheet

Call CreateTempSheet(ddifnWkBk)
ddifnWkBk.Close

endrows = Worksheets("Temp").UsedRange.Rows.Count

'Find Copper row and column

For copperRows = 1 To endrows
If Worksheets("Temp").Cells(a, b) = "Copper" Then <------PROBLEM LINE
cRow = a
cCol = b
Exit For
End If
Next copperRows

'Find laminate row and column

For laminateRows = 1 To endrows
If Worksheets("Temp").Cells(c, d) = "Laminate / PrePreg:" Then
lRow = c
lCol = d
Exit For
End If
Next laminateRows

'Find Impedance Requirements row and column

For impedance_rows = 1 To endrows
If Worksheets("Temp").Cells(m, n) = "Impedance Requirements:" Then
iRow = m
iCol = n
Exit For
End If
Next impedance_rows

'Find signal/copper layer thicknesses
'cRow is where copper starts and iRow is end (Impedance Requirements)

For i = cRow To iRow

If Worksheets("Temp").Cells(i, cCol) < "" Then
If fdl < 0 Then
Di(x) = dth
fdl = 0
x = x + 1
End If
sth = sth + Worksheets("Temp").Cells(i, cCol).Value
fsl = 1
dth = 0
End If

If Worksheets("Temp").Cells(i, lCol) < "" Then
If fsl < 0 Then
Si(y) = sth
fsl = 0
y = y + 1
End If
dth = dth + Worksheets("Temp").Cells(i, lCol)
fdl = 1
sth = 0
End If

Next i

Si(y) = sth

End Sub


--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Run-Time error 1004 Application defined or object defined error - WirelessPete Excel Programming 0 January 12th 09 11:00 PM
Run Time error '1004': Application-defined or object-defined error PBcorn Excel Programming 7 October 2nd 08 03:38 PM
Run Time Error 1004: Application Defined or Object Defined Error BEEJAY Excel Programming 4 August 25th 08 01:52 PM
Export a chart in a GIF file. Run-time error '1004': Application-defined or object-defined error; [email protected] Excel Programming 4 September 16th 07 11:09 PM
Macro Run-time Error 1004 Application Defined or Object Defined Error Anddmx Excel Programming 6 June 9th 04 03:40 PM


All times are GMT +1. The time now is 01:26 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"