Quote Originally Posted by jpbro View Post
Thanks, I'll give it a try if I get bored this weekend. If I get around to it, I'll time it and post the results.
Wow, unless I've done something stupid, I get >10x improvement using a On X Goto/JumpTable approach vs. Select Case

Code:
Sub Test(Optional PrintToForm As Form)
   Const c_MaxTestLoops = 100000

   Dim ii As Long
   Dim jj As Long

   Dim s As Currency
   Dim y() As Currency

   Randomize

   ReDim y(200)
   For ii = 0 To 200
      y(ii) = Int(Rnd * 201)
   Next

   New_c.Timing True

   For jj = 1 To c_MaxTestLoops
      For ii = LBound(y) To UBound(y)
         Select Case y(ii)
         Case 0
            s = s + y(ii)
         Case 1
            s = s + y(ii)
         Case 2
            s = s + y(ii)
         Case 3
            s = s + y(ii)
         Case 4
            s = s + y(ii)
         Case 5
            s = s + y(ii)
         Case 6
            s = s + y(ii)
         Case 7
            s = s + y(ii)
         Case 8
            s = s + y(ii)
         Case 9
            s = s + y(ii)
         Case 10
            s = s + y(ii)
         Case 11
            s = s + y(ii)
         Case 12
            s = s + y(ii)
         Case 13
            s = s + y(ii)
         Case 14
            s = s + y(ii)
         Case 15
            s = s + y(ii)
         Case 16
            s = s + y(ii)
         Case 17
            s = s + y(ii)
         Case 18
            s = s + y(ii)
         Case 19
            s = s + y(ii)
         Case 20
            s = s + y(ii)
         Case 21
            s = s + y(ii)
         Case 22
            s = s + y(ii)
         Case 23
            s = s + y(ii)
         Case 24
            s = s + y(ii)
         Case 25
            s = s + y(ii)
         Case 26
            s = s + y(ii)
         Case 27
            s = s + y(ii)
         Case 28
            s = s + y(ii)
         Case 29
            s = s + y(ii)
         Case 30
            s = s + y(ii)
         Case 31
            s = s + y(ii)
         Case 32
            s = s + y(ii)
         Case 33
            s = s + y(ii)
         Case 34
            s = s + y(ii)
         Case 35
            s = s + y(ii)
         Case 36
            s = s + y(ii)
         Case 37
            s = s + y(ii)
         Case 38
            s = s + y(ii)
         Case 39
            s = s + y(ii)
         Case 40
            s = s + y(ii)
         Case 41
            s = s + y(ii)
         Case 42
            s = s + y(ii)
         Case 43
            s = s + y(ii)
         Case 44
            s = s + y(ii)
         Case 45
            s = s + y(ii)
         Case 46
            s = s + y(ii)
         Case 47
            s = s + y(ii)
         Case 48
            s = s + y(ii)
         Case 49
            s = s + y(ii)
         Case 50
            s = s + y(ii)
         Case 51
            s = s + y(ii)
         Case 52
            s = s + y(ii)
         Case 53
            s = s + y(ii)
         Case 54
            s = s + y(ii)
         Case 55
            s = s + y(ii)
         Case 56
            s = s + y(ii)
         Case 57
            s = s + y(ii)
         Case 58
            s = s + y(ii)
         Case 59
            s = s + y(ii)
         Case 60
            s = s + y(ii)
         Case 61
            s = s + y(ii)
         Case 62
            s = s + y(ii)
         Case 63
            s = s + y(ii)
         Case 64
            s = s + y(ii)
         Case 65
            s = s + y(ii)
         Case 66
            s = s + y(ii)
         Case 67
            s = s + y(ii)
         Case 68
            s = s + y(ii)
         Case 69
            s = s + y(ii)
         Case 70
            s = s + y(ii)
         Case 71
            s = s + y(ii)
         Case 72
            s = s + y(ii)
         Case 73
            s = s + y(ii)
         Case 74
            s = s + y(ii)
         Case 75
            s = s + y(ii)
         Case 76
            s = s + y(ii)
         Case 77
            s = s + y(ii)
         Case 78
            s = s + y(ii)
         Case 79
            s = s + y(ii)
         Case 80
            s = s + y(ii)
         Case 81
            s = s + y(ii)
         Case 82
            s = s + y(ii)
         Case 83
            s = s + y(ii)
         Case 84
            s = s + y(ii)
         Case 85
            s = s + y(ii)
         Case 86
            s = s + y(ii)
         Case 87
            s = s + y(ii)
         Case 88
            s = s + y(ii)
         Case 89
            s = s + y(ii)
         Case 90
            s = s + y(ii)
         Case 91
            s = s + y(ii)
         Case 92
            s = s + y(ii)
         Case 93
            s = s + y(ii)
         Case 94
            s = s + y(ii)
         Case 95
            s = s + y(ii)
         Case 96
            s = s + y(ii)
         Case 97
            s = s + y(ii)
         Case 98
            s = s + y(ii)
         Case 99
            s = s + y(ii)
         Case 100
            s = s + y(ii)
         Case 101
            s = s + y(ii)
         Case 102
            s = s + y(ii)
         Case 103
            s = s + y(ii)
         Case 104
            s = s + y(ii)
         Case 105
            s = s + y(ii)
         Case 106
            s = s + y(ii)
         Case 107
            s = s + y(ii)
         Case 108
            s = s + y(ii)
         Case 109
            s = s + y(ii)
         Case 110
            s = s + y(ii)
         Case 111
            s = s + y(ii)
         Case 112
            s = s + y(ii)
         Case 113
            s = s + y(ii)
         Case 114
            s = s + y(ii)
         Case 115
            s = s + y(ii)
         Case 116
            s = s + y(ii)
         Case 117
            s = s + y(ii)
         Case 118
            s = s + y(ii)
         Case 119
            s = s + y(ii)
         Case 120
            s = s + y(ii)
         Case 121
            s = s + y(ii)
         Case 122
            s = s + y(ii)
         Case 123
            s = s + y(ii)
         Case 124
            s = s + y(ii)
         Case 125
            s = s + y(ii)
         Case 126
            s = s + y(ii)
         Case 127
            s = s + y(ii)
         Case 128
            s = s + y(ii)
         Case 129
            s = s + y(ii)
         Case 130
            s = s + y(ii)
         Case 131
            s = s + y(ii)
         Case 132
            s = s + y(ii)
         Case 133
            s = s + y(ii)
         Case 134
            s = s + y(ii)
         Case 135
            s = s + y(ii)
         Case 136
            s = s + y(ii)
         Case 137
            s = s + y(ii)
         Case 138
            s = s + y(ii)
         Case 139
            s = s + y(ii)
         Case 140
            s = s + y(ii)
         Case 141
            s = s + y(ii)
         Case 142
            s = s + y(ii)
         Case 143
            s = s + y(ii)
         Case 144
            s = s + y(ii)
         Case 145
            s = s + y(ii)
         Case 146
            s = s + y(ii)
         Case 147
            s = s + y(ii)
         Case 148
            s = s + y(ii)
         Case 149
            s = s + y(ii)
         Case 150
            s = s + y(ii)
         Case 151
            s = s + y(ii)
         Case 152
            s = s + y(ii)
         Case 153
            s = s + y(ii)
         Case 154
            s = s + y(ii)
         Case 155
            s = s + y(ii)
         Case 156
            s = s + y(ii)
         Case 157
            s = s + y(ii)
         Case 158
            s = s + y(ii)
         Case 159
            s = s + y(ii)
         Case 160
            s = s + y(ii)
         Case 161
            s = s + y(ii)
         Case 162
            s = s + y(ii)
         Case 163
            s = s + y(ii)
         Case 164
            s = s + y(ii)
         Case 165
            s = s + y(ii)
         Case 166
            s = s + y(ii)
         Case 167
            s = s + y(ii)
         Case 168
            s = s + y(ii)
         Case 169
            s = s + y(ii)
         Case 170
            s = s + y(ii)
         Case 171
            s = s + y(ii)
         Case 172
            s = s + y(ii)
         Case 173
            s = s + y(ii)
         Case 174
            s = s + y(ii)
         Case 175
            s = s + y(ii)
         Case 176
            s = s + y(ii)
         Case 177
            s = s + y(ii)
         Case 178
            s = s + y(ii)
         Case 179
            s = s + y(ii)
         Case 180
            s = s + y(ii)
         Case 181
            s = s + y(ii)
         Case 182
            s = s + y(ii)
         Case 183
            s = s + y(ii)
         Case 184
            s = s + y(ii)
         Case 185
            s = s + y(ii)
         Case 186
            s = s + y(ii)
         Case 187
            s = s + y(ii)
         Case 188
            s = s + y(ii)
         Case 189
            s = s + y(ii)
         Case 190
            s = s + y(ii)
         Case 191
            s = s + y(ii)
         Case 192
            s = s + y(ii)
         Case 193
            s = s + y(ii)
         Case 194
            s = s + y(ii)
         Case 195
            s = s + y(ii)
         Case 196
            s = s + y(ii)
         Case 197
            s = s + y(ii)
         Case 198
            s = s + y(ii)
         Case 199
            s = s + y(ii)
         Case 200
            s = s + y(ii)
         End Select
      Next
   Next

   If PrintToForm Is Nothing Then
      Debug.Print "S: " & s
      Debug.Print "Select..Case Timing: " & New_c.Timing
   Else
      PrintToForm.Print "S: " & s
      PrintToForm.Print "Select..Case Timing: " & New_c.Timing
   End If

   s = 0
   New_c.Timing True

   For jj = 1 To c_MaxTestLoops
      For ii = LBound(y) To UBound(y)
         On y(ii) GoTo lbl0, lbl1, lbl2, lbl3, lbl4, lbl5, lbl6, lbl7, lbl8, lbl9, lbl10, _
            lbl11, lbl12, lbl13, lbl14, lbl15, lbl16, lbl17, lbl18, lbl19, lbl20, _
            lbl21, lbl22, lbl23, lbl24, lbl25, lbl26, lbl27, lbl28, lbl29, lbl30, _
            lbl31, lbl32, lbl33, lbl34, lbl35, lbl36, lbl37, lbl38, lbl39, lbl40, _
            lbl41, lbl42, lbl43, lbl44, lbl45, lbl46, lbl47, lbl48, lbl49, lbl50, _
            lbl51, lbl52, lbl53, lbl54, lbl55, lbl56, lbl57, lbl58, lbl59, lbl60, _
            lbl61, lbl62, lbl63, lbl64, lbl65, lbl66, lbl67, lbl68, lbl69, lbl70, _
            lbl71, lbl72, lbl73, lbl74, lbl75, lbl76, lbl77, lbl78, lbl79, lbl80, _
            lbl81, lbl82, lbl83, lbl84, lbl85, lbl86, lbl87, lbl88, lbl89, lbl90, _
            lbl91, lbl92, lbl93, lbl94, lbl95, lbl96, lbl97, lbl98, lbl99, lbl100, _
            lbl101, lbl102, lbl103, lbl104, lbl105, lbl106, lbl107, lbl108, lbl109, lbl110, _
            lbl111, lbl112, lbl113, lbl114, lbl115, lbl116, lbl117, lbl118, lbl119, lbl120, _
            lbl121, lbl122, lbl123, lbl124, lbl125, lbl126, lbl127, lbl128, lbl129, lbl130, _
            lbl131, lbl132, lbl133, lbl134, lbl135, lbl136, lbl137, lbl138, lbl139, lbl140, _
            lbl141, lbl142, lbl143, lbl144, lbl145, lbl146, lbl147, lbl148, lbl149, lbl150, _
            lbl151, lbl152, lbl153, lbl154, lbl155, lbl156, lbl157, lbl158, lbl159, lbl160, _
            lbl161, lbl162, lbl163, lbl164, lbl165, lbl166, lbl167, lbl168, lbl169, lbl170, _
            lbl171, lbl172, lbl173, lbl174, lbl175, lbl176, lbl177, lbl178, lbl179, lbl180, _
            lbl181, lbl182, lbl183, lbl184, lbl185, lbl186, lbl187, lbl188, lbl189, lbl190, _
            lbl191, lbl192, lbl193, lbl194, lbl195, lbl196, lbl197, lbl198, lbl199, lbl200

lbl0:          s = s + y(ii): GoTo Done
lbl1:          s = s + y(ii): GoTo Done
lbl2:          s = s + y(ii): GoTo Done
lbl3:          s = s + y(ii): GoTo Done
lbl4:          s = s + y(ii): GoTo Done
lbl5:          s = s + y(ii): GoTo Done
lbl6:          s = s + y(ii): GoTo Done
lbl7:          s = s + y(ii): GoTo Done
lbl8:          s = s + y(ii): GoTo Done
lbl9:          s = s + y(ii): GoTo Done
lbl10:          s = s + y(ii): GoTo Done
lbl11:          s = s + y(ii): GoTo Done
lbl12:          s = s + y(ii): GoTo Done
lbl13:          s = s + y(ii): GoTo Done
lbl14:          s = s + y(ii): GoTo Done
lbl15:          s = s + y(ii): GoTo Done
lbl16:          s = s + y(ii): GoTo Done
lbl17:          s = s + y(ii): GoTo Done
lbl18:          s = s + y(ii): GoTo Done
lbl19:          s = s + y(ii): GoTo Done
lbl20:          s = s + y(ii): GoTo Done
lbl21:          s = s + y(ii): GoTo Done
lbl22:          s = s + y(ii): GoTo Done
lbl23:          s = s + y(ii): GoTo Done
lbl24:          s = s + y(ii): GoTo Done
lbl25:          s = s + y(ii): GoTo Done
lbl26:          s = s + y(ii): GoTo Done
lbl27:          s = s + y(ii): GoTo Done
lbl28:          s = s + y(ii): GoTo Done
lbl29:          s = s + y(ii): GoTo Done
lbl30:          s = s + y(ii): GoTo Done
lbl31:          s = s + y(ii): GoTo Done
lbl32:          s = s + y(ii): GoTo Done
lbl33:          s = s + y(ii): GoTo Done
lbl34:          s = s + y(ii): GoTo Done
lbl35:          s = s + y(ii): GoTo Done
lbl36:          s = s + y(ii): GoTo Done
lbl37:          s = s + y(ii): GoTo Done
lbl38:          s = s + y(ii): GoTo Done
lbl39:          s = s + y(ii): GoTo Done
lbl40:          s = s + y(ii): GoTo Done
lbl41:          s = s + y(ii): GoTo Done
lbl42:          s = s + y(ii): GoTo Done
lbl43:          s = s + y(ii): GoTo Done
lbl44:          s = s + y(ii): GoTo Done
lbl45:          s = s + y(ii): GoTo Done
lbl46:          s = s + y(ii): GoTo Done
lbl47:          s = s + y(ii): GoTo Done
lbl48:          s = s + y(ii): GoTo Done
lbl49:          s = s + y(ii): GoTo Done
lbl50:          s = s + y(ii): GoTo Done
lbl51:          s = s + y(ii): GoTo Done
lbl52:          s = s + y(ii): GoTo Done
lbl53:          s = s + y(ii): GoTo Done
lbl54:          s = s + y(ii): GoTo Done
lbl55:          s = s + y(ii): GoTo Done
lbl56:          s = s + y(ii): GoTo Done
lbl57:          s = s + y(ii): GoTo Done
lbl58:          s = s + y(ii): GoTo Done
lbl59:          s = s + y(ii): GoTo Done
lbl60:          s = s + y(ii): GoTo Done
lbl61:          s = s + y(ii): GoTo Done
lbl62:          s = s + y(ii): GoTo Done
lbl63:          s = s + y(ii): GoTo Done
lbl64:          s = s + y(ii): GoTo Done
lbl65:          s = s + y(ii): GoTo Done
lbl66:          s = s + y(ii): GoTo Done
lbl67:          s = s + y(ii): GoTo Done
lbl68:          s = s + y(ii): GoTo Done
lbl69:          s = s + y(ii): GoTo Done
lbl70:          s = s + y(ii): GoTo Done
lbl71:          s = s + y(ii): GoTo Done
lbl72:          s = s + y(ii): GoTo Done
lbl73:          s = s + y(ii): GoTo Done
lbl74:          s = s + y(ii): GoTo Done
lbl75:          s = s + y(ii): GoTo Done
lbl76:          s = s + y(ii): GoTo Done
lbl77:          s = s + y(ii): GoTo Done
lbl78:          s = s + y(ii): GoTo Done
lbl79:          s = s + y(ii): GoTo Done
lbl80:          s = s + y(ii): GoTo Done
lbl81:          s = s + y(ii): GoTo Done
lbl82:          s = s + y(ii): GoTo Done
lbl83:          s = s + y(ii): GoTo Done
lbl84:          s = s + y(ii): GoTo Done
lbl85:          s = s + y(ii): GoTo Done
lbl86:          s = s + y(ii): GoTo Done
lbl87:          s = s + y(ii): GoTo Done
lbl88:          s = s + y(ii): GoTo Done
lbl89:          s = s + y(ii): GoTo Done
lbl90:          s = s + y(ii): GoTo Done
lbl91:          s = s + y(ii): GoTo Done
lbl92:          s = s + y(ii): GoTo Done
lbl93:          s = s + y(ii): GoTo Done
lbl94:          s = s + y(ii): GoTo Done
lbl95:          s = s + y(ii): GoTo Done
lbl96:          s = s + y(ii): GoTo Done
lbl97:          s = s + y(ii): GoTo Done
lbl98:          s = s + y(ii): GoTo Done
lbl99:          s = s + y(ii): GoTo Done
lbl100:          s = s + y(ii): GoTo Done
lbl101:          s = s + y(ii): GoTo Done
lbl102:          s = s + y(ii): GoTo Done
lbl103:          s = s + y(ii): GoTo Done
lbl104:          s = s + y(ii): GoTo Done
lbl105:          s = s + y(ii): GoTo Done
lbl106:          s = s + y(ii): GoTo Done
lbl107:          s = s + y(ii): GoTo Done
lbl108:          s = s + y(ii): GoTo Done
lbl109:          s = s + y(ii): GoTo Done
lbl110:          s = s + y(ii): GoTo Done
lbl111:          s = s + y(ii): GoTo Done
lbl112:          s = s + y(ii): GoTo Done
lbl113:          s = s + y(ii): GoTo Done
lbl114:          s = s + y(ii): GoTo Done
lbl115:          s = s + y(ii): GoTo Done
lbl116:          s = s + y(ii): GoTo Done
lbl117:          s = s + y(ii): GoTo Done
lbl118:          s = s + y(ii): GoTo Done
lbl119:          s = s + y(ii): GoTo Done
lbl120:          s = s + y(ii): GoTo Done
lbl121:          s = s + y(ii): GoTo Done
lbl122:          s = s + y(ii): GoTo Done
lbl123:          s = s + y(ii): GoTo Done
lbl124:          s = s + y(ii): GoTo Done
lbl125:          s = s + y(ii): GoTo Done
lbl126:          s = s + y(ii): GoTo Done
lbl127:          s = s + y(ii): GoTo Done
lbl128:          s = s + y(ii): GoTo Done
lbl129:          s = s + y(ii): GoTo Done
lbl130:          s = s + y(ii): GoTo Done
lbl131:          s = s + y(ii): GoTo Done
lbl132:          s = s + y(ii): GoTo Done
lbl133:          s = s + y(ii): GoTo Done
lbl134:          s = s + y(ii): GoTo Done
lbl135:          s = s + y(ii): GoTo Done
lbl136:          s = s + y(ii): GoTo Done
lbl137:          s = s + y(ii): GoTo Done
lbl138:          s = s + y(ii): GoTo Done
lbl139:          s = s + y(ii): GoTo Done
lbl140:          s = s + y(ii): GoTo Done
lbl141:          s = s + y(ii): GoTo Done
lbl142:          s = s + y(ii): GoTo Done
lbl143:          s = s + y(ii): GoTo Done
lbl144:          s = s + y(ii): GoTo Done
lbl145:          s = s + y(ii): GoTo Done
lbl146:          s = s + y(ii): GoTo Done
lbl147:          s = s + y(ii): GoTo Done
lbl148:          s = s + y(ii): GoTo Done
lbl149:          s = s + y(ii): GoTo Done
lbl150:          s = s + y(ii): GoTo Done
lbl151:          s = s + y(ii): GoTo Done
lbl152:          s = s + y(ii): GoTo Done
lbl153:          s = s + y(ii): GoTo Done
lbl154:          s = s + y(ii): GoTo Done
lbl155:          s = s + y(ii): GoTo Done
lbl156:          s = s + y(ii): GoTo Done
lbl157:          s = s + y(ii): GoTo Done
lbl158:          s = s + y(ii): GoTo Done
lbl159:          s = s + y(ii): GoTo Done
lbl160:          s = s + y(ii): GoTo Done
lbl161:          s = s + y(ii): GoTo Done
lbl162:          s = s + y(ii): GoTo Done
lbl163:          s = s + y(ii): GoTo Done
lbl164:          s = s + y(ii): GoTo Done
lbl165:          s = s + y(ii): GoTo Done
lbl166:          s = s + y(ii): GoTo Done
lbl167:          s = s + y(ii): GoTo Done
lbl168:          s = s + y(ii): GoTo Done
lbl169:          s = s + y(ii): GoTo Done
lbl170:          s = s + y(ii): GoTo Done
lbl171:          s = s + y(ii): GoTo Done
lbl172:          s = s + y(ii): GoTo Done
lbl173:          s = s + y(ii): GoTo Done
lbl174:          s = s + y(ii): GoTo Done
lbl175:          s = s + y(ii): GoTo Done
lbl176:          s = s + y(ii): GoTo Done
lbl177:          s = s + y(ii): GoTo Done
lbl178:          s = s + y(ii): GoTo Done
lbl179:          s = s + y(ii): GoTo Done
lbl180:          s = s + y(ii): GoTo Done
lbl181:          s = s + y(ii): GoTo Done
lbl182:          s = s + y(ii): GoTo Done
lbl183:          s = s + y(ii): GoTo Done
lbl184:          s = s + y(ii): GoTo Done
lbl185:          s = s + y(ii): GoTo Done
lbl186:          s = s + y(ii): GoTo Done
lbl187:          s = s + y(ii): GoTo Done
lbl188:          s = s + y(ii): GoTo Done
lbl189:          s = s + y(ii): GoTo Done
lbl190:          s = s + y(ii): GoTo Done
lbl191:          s = s + y(ii): GoTo Done
lbl192:          s = s + y(ii): GoTo Done
lbl193:          s = s + y(ii): GoTo Done
lbl194:          s = s + y(ii): GoTo Done
lbl195:          s = s + y(ii): GoTo Done
lbl196:          s = s + y(ii): GoTo Done
lbl197:          s = s + y(ii): GoTo Done
lbl198:          s = s + y(ii): GoTo Done
lbl199:          s = s + y(ii): GoTo Done
lbl200:          s = s + y(ii): GoTo Done

Done:
      Next
   Next

   If PrintToForm Is Nothing Then
      Debug.Print "S: " & s
      Debug.Print "Select..Case Timing: " & New_c.Timing
   Else
      PrintToForm.Print "S: " & s
      PrintToForm.Print "Select..Case Timing: " & New_c.Timing
   End If
End Sub