Eu gravei uma macro em 2007 para ver se havia alguma diferença no código e é basicamente o mesmo que você tem acima. Será que a mesa mudou? A1 deve ser o canto superior esquerdo do intervalo que você deseja subtotal. Há interrupções nos dados? Isso pode causar problemas. Os dados estão classificados corretamente?
Quais erros você está recebendo no Excel 2007 ao executar este código?