ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Populating and Comparing Arrays (https://www.excelbanter.com/excel-programming/440946-populating-comparing-arrays.html)

nick

Populating and Comparing Arrays
 
I want to feed two sets of cells into two arrays and then compare the array
values. If the values compared within the array match I want to add 1 to a
variable I called "Points". This is the code I have so far to do this:



Option Explicit
Dim Entry1()
Dim Checker()
Dim Points As Integer
Dim X As Integer



Sub Compare()
For X = 1 To 2
Entry1(X) = Workbooks("Entry1.xls").Sheets("sheet1").Cells(3 + (5 * X),
4).Value 'This is what the debugger keeps flagging as wrong
Checker(X) = Sheets("Source").Cells(3 + (5 * X), 4).Value

If Entry1(X) = Checker(X) Then Points = Points + 1
Next X
ThisWorkbook.Sheets("Summary").Range("c6") = Points


End Sub


Paul Robinson

Populating and Comparing Arrays
 
Hi
You must say what size the array is and what data type. Do you really
want variable declaration outside the sub too? Put the Dim statements
inside the sub if they are only used there.

Option Explicit
Dim Entry1(1 to 2) as Double 'or integer etc
Dim Checker(1 to 2) as Double
Dim Points As Integer
Dim X As Integer

Sub Compare()

For X = 1 To 2
Entry1(X) = Workbooks("Entry1.xls").Sheets("sheet1").Cells(3 + (5 *
X),
4).Value 'This is what the debugger keeps flagging
as wrong
Checker(X) = Sheets("Source").Cells(3 + (5 * X), 4).Value

If Entry1(X) = Checker(X) Then Points = Points + 1
Next X
ThisWorkbook.Sheets("Summary").Range("c6") = Points

End Sub

regards
Paul

On Mar 23, 7:39*pm, Nick wrote:
I want to feed two sets of cells into two arrays and then compare the array
values. *If the values compared within the array match I want to add 1 to a
variable I called "Points". *This is the code I have so far to do this:

Option Explicit
Dim Entry1()
Dim Checker()
Dim Points As Integer
Dim X As Integer

Sub Compare()
For X = 1 To 2
Entry1(X) = Workbooks("Entry1.xls").Sheets("sheet1").Cells(3 + (5 * X), *
4).Value * * * * * * * * * 'This is what the debugger keeps flagging as wrong
Checker(X) = Sheets("Source").Cells(3 + (5 * X), 4).Value

If Entry1(X) = Checker(X) Then Points = Points + 1
Next X
ThisWorkbook.Sheets("Summary").Range("c6") = Points

End Sub



Herbert Seidenberg

Populating and Comparing Arrays
 
Excel 2007 Tables
Compare
http://c0718892.cdn.cloudfiles.racks.../03_23_10.xlsm
http://www.mediafire.com/file/jnqmgvmw2wn/03_23_10.pdf

nick

Populating and Comparing Arrays
 
Thanks Paul,

I tried your suggestions but I still get flagged on the same line. Entry
and Checker are storing text. I declared them as variants because that is
the only thing I know to do. Any other suggestions? This is what I have now:

Option Explicit
Dim Entry(1 To 2) As Variant
Dim Checker(1 To 2) As Variant
Dim Points As Integer
Dim X As Integer

Sub Compare()
For X = 1 To 2
Entry(X) = Workbooks("Entry1.xls").Sheets("Sheet1").Range(Cel ls(3 + (5 * X),
4)).Value
Checker(X) = Sheets("Source").Range(Cells(3 + (5 * X), 4)).Value
If Entry(X) = Checker(X) Then Points = Points + 1
Next X
ThisWorkbook.Sheets("Summary").Range("c6") = Points


End Sub


"Paul Robinson" wrote:

Hi
You must say what size the array is and what data type. Do you really
want variable declaration outside the sub too? Put the Dim statements
inside the sub if they are only used there.

Option Explicit
Dim Entry1(1 to 2) as Double 'or integer etc
Dim Checker(1 to 2) as Double
Dim Points As Integer
Dim X As Integer

Sub Compare()

For X = 1 To 2
Entry1(X) = Workbooks("Entry1.xls").Sheets("sheet1").Cells(3 + (5 *
X),
4).Value 'This is what the debugger keeps flagging
as wrong
Checker(X) = Sheets("Source").Cells(3 + (5 * X), 4).Value

If Entry1(X) = Checker(X) Then Points = Points + 1
Next X
ThisWorkbook.Sheets("Summary").Range("c6") = Points

End Sub

regards
Paul

On Mar 23, 7:39 pm, Nick wrote:
I want to feed two sets of cells into two arrays and then compare the array
values. If the values compared within the array match I want to add 1 to a
variable I called "Points". This is the code I have so far to do this:

Option Explicit
Dim Entry1()
Dim Checker()
Dim Points As Integer
Dim X As Integer

Sub Compare()
For X = 1 To 2
Entry1(X) = Workbooks("Entry1.xls").Sheets("sheet1").Cells(3 + (5 * X),
4).Value 'This is what the debugger keeps flagging as wrong
Checker(X) = Sheets("Source").Cells(3 + (5 * X), 4).Value

If Entry1(X) = Checker(X) Then Points = Points + 1
Next X
ThisWorkbook.Sheets("Summary").Range("c6") = Points

End Sub


.


nick

Populating and Comparing Arrays
 
Thanks,

The second link (www.meidafire...") has a macro that works if the data I
want to compare was in a table where the data items are in adjacent cells.
However, I would like to compare every 5th cell from a certain point (Cells(3
+ (5 * X)). Can I alter your code to do this. With your method are the
variables 'Entry' and 'Checker' arrays? Or is this something else that seems
to have the same function?

Option Explicit
Dim Entry As Variant
Dim Checker As Variant
Dim Points As Integer
Dim N As Integer
Dim I As Integer


Sub Compare()
With Workbooks("Entry1.xls").Sheets("Sheet1").Range("ta ble1")
Entry = .Value
End With
With Sheets("Source").Range("table2")
Checker = .Value
End With
For I = 1 To UBound(Checker, 2)
For N = 1 To UBound(Checker, 1)

If Entry(N, I) = Checker(N, I) Then Points = Points + 1

Next N
Next I

ThisWorkbook.Sheets("Summary").Range("c6") = Points


End Sub


"Herbert Seidenberg" wrote:

Excel 2007 Tables
Compare
http://c0718892.cdn.cloudfiles.racks.../03_23_10.xlsm
http://www.mediafire.com/file/jnqmgvmw2wn/03_23_10.pdf
.


Paul Robinson

Populating and Comparing Arrays
 
Hi
Entry1 has now become Entry in this second version of your problem. Is
that the problem?
To declare text use
Dim Entry1(1 to 2) as String

should work ok with Variant, so maybe it is the Entry/Entry1 issue.
regards
Paul

On Mar 24, 1:11*pm, Nick wrote:
Thanks Paul,

I tried your suggestions but I still get flagged on the same line. *Entry
and Checker are storing text. *I declared them as variants because that is
the only thing I know to do. *Any other suggestions? *This is what I have now:

Option Explicit
Dim Entry(1 To 2) As Variant
Dim Checker(1 To 2) As Variant
Dim Points As Integer
Dim X As Integer

Sub Compare()
For X = 1 To 2
Entry(X) = Workbooks("Entry1.xls").Sheets("Sheet1").Range(Cel ls(3 + (5 * X),
4)).Value
Checker(X) = Sheets("Source").Range(Cells(3 + (5 * X), 4)).Value
If Entry(X) = Checker(X) Then Points = Points + 1
Next X
ThisWorkbook.Sheets("Summary").Range("c6") = Points

End Sub



"Paul Robinson" wrote:
Hi
You must say what size the array is and what data type. Do you really
want variable declaration outside the sub too? Put the Dim statements
inside the sub if they are only used there.


Option Explicit
Dim Entry1(1 to 2) as Double *'or integer etc
Dim Checker(1 to 2) as Double
Dim Points As Integer
Dim X As Integer


Sub Compare()


For X = 1 To 2
Entry1(X) = Workbooks("Entry1.xls").Sheets("sheet1").Cells(3 + (5 *
X),
4).Value * * * * * * * * * 'This is what the debugger keeps flagging
as wrong
Checker(X) = Sheets("Source").Cells(3 + (5 * X), 4).Value


If Entry1(X) = Checker(X) Then Points = Points + 1
Next X
ThisWorkbook.Sheets("Summary").Range("c6") = Points


End Sub


regards
Paul


On Mar 23, 7:39 pm, Nick wrote:
I want to feed two sets of cells into two arrays and then compare the array
values. *If the values compared within the array match I want to add 1 to a
variable I called "Points". *This is the code I have so far to do this:


Option Explicit
Dim Entry1()
Dim Checker()
Dim Points As Integer
Dim X As Integer


Sub Compare()
For X = 1 To 2
Entry1(X) = Workbooks("Entry1.xls").Sheets("sheet1").Cells(3 + (5 * X), *
4).Value * * * * * * * * * 'This is what the debugger keeps flagging as wrong
Checker(X) = Sheets("Source").Cells(3 + (5 * X), 4).Value


If Entry1(X) = Checker(X) Then Points = Points + 1
Next X
ThisWorkbook.Sheets("Summary").Range("c6") = Points


End Sub


.- Hide quoted text -


- Show quoted text -




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

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