This did work for me:
ActiveSheet.Range("A7:BW16,CA7:CV16," & _
"A18

N18,A20:BA20,A25:BW34," & _
"CA25:CV34,A36

N36,A38:BA38," & _
"A43:BW52,CA43:CV52,A54

N54," & _
"A56:BA56,A61:BW70,CA61:CV70," & _
"A72

N72,A74:BA74,A79:BW88," & _
"CA79:CV88,A90

N90,A92:BA92," & _
"A97:BW106,CA97:CV106," & _
"A108

N108,A110:BA110," & _
"A115:BW124,CA115:CV124").Value = 9
But I couldn't add too much more to that string of addresses. There is a limit
how long that string can be.
Since you're changing the values to 9, you could just split it up into multiple
statements:
with activesheet
.Range("A7:BW16,CA7:CV16,A18

N18,A20:BA20").value = 9
.range("A25:BW34,CA25:CV34,A36

N36,A38:BA38").value = 9
....
end with
Or you could extend Barb's suggestion using Union().
It looked like there was going to be a pattern to your range--if that's true,
then maybe you could use something like:
Sub testme01()
Dim iRow As Long
With ActiveSheet
For iRow = 7 To 115 Step 18
With .Cells(iRow, "A")
'get those big blocks
.Resize(10, 75).Value = 9
.Offset(0, 78).Resize(10, 22).Value = 9
'get the first lonely row
.Offset(11, 0).Resize(1, 118).Value = 9
'get the second lonely row
.Offset(13, 0).Resize(1, 53).Value = 9
End With
Next iRow
End With
End Sub
I don't know how close this is to your final range, though.