@ Pᴇʜ, по сути, ответил на ваш вопрос, но вот очищенный код:
Option Explicit
Sub FindRepRegion()
Dim Findtext As String
Dim Replacetext As String
Replacetext = "'Sheet1'!$AW:$AW"
If ActiveSheet.Range("J1") = "School" Then
Findtext = "'Sheet1'!$B:$B"
ActiveSheet.Range("E3:G35").Replace what:=Findtext, replacement:=Replacetext, lookat:=xlPart, MatchCase:=False
ElseIf ActiveSheet.Range("J1") = "Grant" Then
Findtext = "'Sheet1'!$AX:$AX"
ActiveSheet.Range("E3:G35").Replace what:=Findtext, replacement:=Replacetext, lookat:=xlPart, MatchCase:=False
ElseIf ActiveSheet.Range("J1") = "Community School" Then
Findtext = "'Sheet1'!$AY:$AY"
ActiveSheet.Range("E3:G35").Replace what:=Findtext, replacement:=Replacetext, lookat:=xlPart, MatchCase:=False
End If
End Sub
Но, поскольку все ваши условия проверяются на одном и том же диапазоне, могу ли я предложить Select Case
?Также добавлен оператор With
.
Option Explicit
Sub FindRepRegion()
Dim Findtext As String
Dim Replacetext As String
Replacetext = "'Sheet1'!$AW:$AW"
With ActiveSheet
Select Case .Range("J1")
Case "School"
Findtext = "'Sheet1'!$B:$B"
Case "Grant"
Findtext = "'Sheet1'!$AX:$AX"
Case "Community School"
Findtext = "'Sheet1'!$AY:$AY"
End Select
.Range("E3:G35").Replace what:=Findtext, replacement:=Replacetext, lookat:=xlPart, MatchCase:=False
End With
End Sub