Ваша проблема в этой строке, верно?
x = x + Sheets(i).Range(rng).Value
Range(rng)
не работает, если rng
не содержит адрес. Например. "D1:D3"
Переменная rng
не содержит значения, и поэтому ваш код ломается.
Если это один и тот же адрес на каждом листе, вы должны просто написать его. например Range("D1:D3")