K
Karen53
Hi,
I seem to be missing something. I see examples where a variable is used to
define an array. When I try it (below) I get a message it has to be a
constant. I would appreciate the guidance. I obviously don't understand
something.
Sub FindDupCurrent()
Dim Lusedrow As Long
Dim iCtr As Long
Dim ArrayCounter As Long
Dim ArrayLength As Long
Dim HasDups As Boolean
Dim Dupcount As Long
Lusedrow = MainPagepg.Cells(Rows.Count, "F").End(xlUp).Row
ArrayCounter = 0
ArrayLength = MainPagepg.Range("I11").Value
Dim CurrArray(1 To ArrayLength) As Long
With MainPagepg
For iCtr = 14 To Lusedrow 'Tenants begin on row 14
If .Range("B" & iCtr).Value = "Current" Then
If .Range("D" & iCtr).Value > 0 Then
ArrayCounter = ArrayCounter + 1
CurrArray(ArrayCounter) = MainPagepg.Range("D" &
iCtr).Value
End If
End If
Next
End With
ArrayCounter = 1
iCtr = 0
HasDups = False
Dupcount = 0
For iCtr = 1 To ArrayLength
For ArrayCounter = 1 To ArrayLength
If CurrArray(iCtr) = CurrArray(ArrayCounter) Then
Dupcount = Dupcount + 1
End If
If Dupcount > 1 Then
HasDups = True
End If
Next
Next
If HasDups = True Then
With MainPagepg.Range("D11")
.WrapText = True
.Font.ColorIndex = 3
.Font.Bold = True
.Value = "Duplicate Current Unit"
End With
End If
Erase CurrArray
End Sub
I seem to be missing something. I see examples where a variable is used to
define an array. When I try it (below) I get a message it has to be a
constant. I would appreciate the guidance. I obviously don't understand
something.
Sub FindDupCurrent()
Dim Lusedrow As Long
Dim iCtr As Long
Dim ArrayCounter As Long
Dim ArrayLength As Long
Dim HasDups As Boolean
Dim Dupcount As Long
Lusedrow = MainPagepg.Cells(Rows.Count, "F").End(xlUp).Row
ArrayCounter = 0
ArrayLength = MainPagepg.Range("I11").Value
Dim CurrArray(1 To ArrayLength) As Long
With MainPagepg
For iCtr = 14 To Lusedrow 'Tenants begin on row 14
If .Range("B" & iCtr).Value = "Current" Then
If .Range("D" & iCtr).Value > 0 Then
ArrayCounter = ArrayCounter + 1
CurrArray(ArrayCounter) = MainPagepg.Range("D" &
iCtr).Value
End If
End If
Next
End With
ArrayCounter = 1
iCtr = 0
HasDups = False
Dupcount = 0
For iCtr = 1 To ArrayLength
For ArrayCounter = 1 To ArrayLength
If CurrArray(iCtr) = CurrArray(ArrayCounter) Then
Dupcount = Dupcount + 1
End If
If Dupcount > 1 Then
HasDups = True
End If
Next
Next
If HasDups = True Then
With MainPagepg.Range("D11")
.WrapText = True
.Font.ColorIndex = 3
.Font.Bold = True
.Value = "Duplicate Current Unit"
End With
End If
Erase CurrArray
End Sub