Caro Leonardo,
Apesar do inconveniente, isso não é um problema do VBE e sim da maneira como é estruturado o modelo de objetos do aplicativo Excel. O problema é que algumas propriedades e métodos retornam um objeto genérico e não de um tipo específico. É o caso, por exemplo, da propriedade "Item" do objeto Worksheets, que acaba retornando o tipo "Object", em vez de retornar um tipo "Worksheet", assim perde-se o benefício da ajuda das ferramentas de construção de código após atingir o ponto: Workbooks(1).Worksheets(1).
[lembrando que Workbooks(1).Worksheets(1) é o mesmo que Workbooks.Item(1).Worksheets.Item(1)]
Também é o caso do ActiveSheet que vc descreveu. Devido ao tipo de objeto retornado ser um "Object", que é o tipo genérico para todos os objetos, as ferramentas de criação de instrução ("intelliSense") não conseguem determinar quais são as propriedades e métodos disponíveis.
Para contornar esse problema, pode-se explicitamente declarar uma variável de objeto que tenha o tipo específico "Worksheet" e então atribuir a essa variável a expressão que retorna uma referência para o objeto específico Worksheet. Aí vc usa a nova variável onde necessário. No seu caso,
Dim ws As Worksheet
Set ws = Application.ActiveSheet
No caso do "Selection" descrito pelo colega robo8268 já é outra história, pois se houver uma ou mais células selecionadas, Selection seria do tipo Range. Mas se estiver selecionado uma uma figura, gráfico, auto-forma, por exemplo, o objeto retornado por Selection deixa de ser Range e pode ser tipo Shape, Chart, etc. (Pode-se usar TypeName(Selection) para verificar se é "Range", "Picture", podendo inclusive ser "Nothing" etc.). Portanto não há como o Excel prever, nesse caso, o que estará selecionado quando o código for executado e portanto não poderia prever que propriedades ou métodos utilizar durante a escrita do código. Havendo certeza que de fato há uma Range selecionada pode-se fazer como descrito anteriormente e atribuí-la a uma variável (certificando-se que a planilha esteja ativada), por exemplo:
Dim rg as Range
Set rg = Selection
Postado : 23/02/2016 1:27 pm