/ / adicionar colunas no excel - excel, vba, excel-vba

adicionar colunas no excel - excel, vba, excel-vba

Eu estou tentando criar uma macro do excel que insere automaticamente duas colunas antes da coluna D ... O procedimento funcionou bem quando eu criei, aqui está:

Sub AddColumns()
Columns("D:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Mas quando eu abro minha planilha e a testo, tudomeus dados são empurrados para a direita sobre 11 colunas e 11 colunas em branco são inseridas. Eu tenho certeza que isso tem que com algumas linhas com 11 colunas mescladas. As instruções Select seleciona as 11 primeiras colunas A-K.

Como faço para corrigir isso?

Respostas:

4 para resposta № 1

Isso acontece por causa da linha Columns("D:D").Select. Se você não selecionar este código de colunas, funcionará bem.

Use este em vez disso:

With Range("D:D")
.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End With

E, Como evitar o uso de declarações Select / Active:)


2 para resposta № 2

Você não usa selecione para fazer isso

Sub AddColumns()
Columns("D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

1 para resposta № 3

Se você selecionar a coluna que contém células mescladas, a seleção será expandida para todas as colunas que cruzarem essas células mescladas. No seu caso, 11 colunas são selecionadas.

Além disso, o Selection.Insert insere quantas colunas forem selecionadas: Voila.

Portanto, verifique se você não tem células mescladas na sua seleção.