Hi
I have made some code that works perfect, but i was wondering how you guys would speed it up a bit and simplify it. I couldn't figure out how to compare the to arrays DataRange and DRReal. Hope you can help me!
Sub Makro1()
Dim DataRange As Variant
Dim DRReal As Variant
Dim Irow As Long
Dim Icol As Integer
Dim MyVar As String
DataRange = Range("A1:C20").Value ' read all the values at once from the Excel grid, put into an array
DRReal = Range("N1:Q18").Value
For Icol = 1 To 3
If Icol > 3 Then GoTo Hurtig
For Irow = 1 To 20
MyVar = DataRange(Irow, Icol)
If MyVar = "" Then GoTo Videre
'Gender
If MyVar = Range("Q2").Value Then
DataRange(Irow, Icol) = Range("N2").Value
ElseIf MyVar = Range("Q3").Value Then
DataRange(Irow, Icol) = Range("N3").Value
'Region
ElseIf MyVar = Range("P2").Value Then
DataRange(Irow, Icol) = Range("N2").Value
ElseIf MyVar = Range("P3").Value Then
DataRange(Irow, Icol) = Range("N3").Value
ElseIf MyVar = Range("P4").Value Then
DataRange(Irow, Icol) = Range("N4").Value
ElseIf MyVar = Range("P5").Value Then
DataRange(Irow, Icol) = Range("N5").Value
ElseIf MyVar = Range("P6").Value Then
DataRange(Irow, Icol) = Range("N6").Value
'Income
ElseIf MyVar = Range("O2").Value Then
DataRange(Irow, Icol) = Range("N2").Value
ElseIf MyVar = Range("O3").Value Then
DataRange(Irow, Icol) = Range("N3").Value
ElseIf MyVar = Range("O4").Value Then
DataRange(Irow, Icol) = Range("N4").Value
ElseIf MyVar = Range("O5").Value Then
DataRange(Irow, Icol) = Range("N5").Value
ElseIf MyVar = Range("O6").Value Then
DataRange(Irow, Icol) = Range("N6").Value
ElseIf MyVar = Range("O7").Value Then
DataRange(Irow, Icol) = Range("N7").Value
ElseIf MyVar = Range("O8").Value Then
DataRange(Irow, Icol) = Range("N8").Value
ElseIf MyVar = Range("O9").Value Then
DataRange(Irow, Icol) = Range("N9").Value
ElseIf MyVar = Range("O10").Value Then
DataRange(Irow, Icol) = Range("N10").Value
ElseIf MyVar = Range("O11").Value Then
DataRange(Irow, Icol) = Range("N11").Value
ElseIf MyVar = Range("O12").Value Then
DataRange(Irow, Icol) = Range("N12").Value
ElseIf MyVar = Range("O13").Value Then
DataRange(Irow, Icol) = Range("N13").Value
ElseIf MyVar = Range("O14").Value Then
DataRange(Irow, Icol) = Range("N14").Value
ElseIf MyVar = Range("O15").Value Then
DataRange(Irow, Icol) = Range("N15").Value
ElseIf MyVar = Range("O16").Value Then
DataRange(Irow, Icol) = Range("N16").Value
ElseIf MyVar = Range("O17").Value Then
DataRange(Irow, Icol) = Range("N17").Value
ElseIf MyVar = Range("O18").Value Then
DataRange(Irow, Icol) = Range("N18").Value
End If
Next Irow
Videre:
Next Icol
Hurtig:
Range("A1:C20").Value = DataRange ' writes all the results back to the range at once
End Sub
Moderator's note: Please take the time to review our rules. There aren't many, and they are all important. Rule #3 requires code tags. I have added them for you this time because you are a new member. --6StringJazzer
Bookmarks