View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
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
 
ExcelBanter Database Error
Database Error Database error
The ExcelBanter database has encountered a problem.

Please try the following:
  • Load the page again by clicking the Refresh button in your web browser.
  • Open the www.excelbanter.com home page, then try to open another page.
  • Click the Back button to try another link.
The www.excelbanter.com forum technical staff have been notified of the error, though you may contact them if the problem persists.
 
We apologise for any inconvenience.