У меня есть 5 строк кода, которые мне нужно воспроизвести примерно 180 раз. Для каждой строки (или группы строк) мне нужно настроить всего несколько чисел. Делать замену супер утомительно. Есть ли способ сделать это со смещением или чем-то в этом роде? Вот код:
If Target.Address = "$E$7" Then
MsgBox Worksheets("Budget Hours").Range("F3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("F6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("F7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("F8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("F9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("F10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$8" Then
MsgBox Worksheets("Budget Hours").Range("G3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("G6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("G7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("G8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("G9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("G10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$9" Then
MsgBox Worksheets("Budget Hours").Range("H3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("H6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("H7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("H8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("H9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("H10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$10" Then
MsgBox Worksheets("Budget Hours").Range("I3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("I6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("I7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("I8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("I9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("I10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$11" Then
MsgBox Worksheets("Budget Hours").Range("J3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("J6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("J7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("J8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("J9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("J10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$12" Then
MsgBox Worksheets("Budget Hours").Range("K3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("K6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("K7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("K8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("K9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("K10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$13" Then
MsgBox Worksheets("Budget Hours").Range("L3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("L6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("L7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("L8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("L9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("L10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$14" Then
MsgBox Worksheets("Budget Hours").Range("M3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("M6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("M7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("M8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("M9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("M10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$15" Then
MsgBox Worksheets("Budget Hours").Range("N3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("N6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("N7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("N8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("N9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("N10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$16" Then
MsgBox Worksheets("Budget Hours").Range("O3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("O6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("O7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("O8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("O9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("O10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$17" Then
MsgBox Worksheets("Budget Hours").Range("P3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("P6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("P7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("P8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("P9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("P10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$18" Then
MsgBox Worksheets("Budget Hours").Range("Q3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("Q6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("Q7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("Q8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("Q9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("Q10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$19" Then
MsgBox Worksheets("Budget Hours").Range("R3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("R6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("R7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("R8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("R9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("R10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$20" Then
MsgBox Worksheets("Budget Hours").Range("S3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("S6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("S7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("S8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("S9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("S10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$21" Then
MsgBox Worksheets("Budget Hours").Range("T3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("T6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("T7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("T8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("T9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("T10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$22" Then
MsgBox Worksheets("Budget Hours").Range("U3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("U6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("U7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("U8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("U9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("U10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$23" Then
MsgBox Worksheets("Budget Hours").Range("V3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("V6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("V7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("V8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("V9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("V10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$24" Then
MsgBox Worksheets("Budget Hours").Range("W3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("W6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("W7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("W8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("W9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("W10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$25" Then
MsgBox Worksheets("Budget Hours").Range("X3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("X6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("X7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("X8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("X9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("X10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$26" Then
MsgBox Worksheets("Budget Hours").Range("Y3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("Y6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("Y7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("Y8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("Y9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("Y10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
ElseIf Target.Address = "$E$27" Then
MsgBox Worksheets("Budget Hours").Range("Z3").Value & vbNewLine _
& vbNewLine & Worksheets("Budget Hours").Range("E6").Value & " - " & Worksheets("Budget Hours").Range("Z6").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E7").Value & " - " & Worksheets("Budget Hours").Range("Z7").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E8").Value & " - " & Worksheets("Budget Hours").Range("Z8").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E9").Value & " - " & Worksheets("Budget Hours").Range("Z9").Value & " Hours" _
& vbNewLine & Worksheets("Budget Hours").Range("E10").Value & " - " & Worksheets("Budget Hours").Range("Z10").Value & " Hours" _
, , Worksheets("Budget Hours").Range("E5").Value
Итак, 6, 7, 8, 9 и 10 заменяются на 15, 16, 17, 18 и 19 в следующей группе. Затем есть еще 6 наборов вышеуказанного кода. Есть ли способ реализовать какое-то смещение, чтобы я мог только настроить его, а все остальное уравновесило? Это всегда будет пять последовательных чисел, поэтому одно смещение до сработает, чтобы добраться до правильной начальной точки. В сторону - смещение не всегда будет равно 9 (ie. 6 становится 15). Одно из смещений будет другим числом, поэтому я хотел бы иметь возможность соответствующим образом отрегулировать.