/ / добавяне на колони в Excel - excel, vba, excel-vba

добавете колони в Excel - excel, vba, excel-vba

Опитвам се да създам макрос на Excel, който автоматично вмъква две колони преди колона D ... Процедурата работи добре, когато я създадох, ето:

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

Но когато отворя работния ми лист и го изпробвам, всичкоданните ми се придвижват надясно около 11 колони и се добавят 11 празни колони. Сигурен съм, че това трябва да е с няколко реда, които имат обединени 11 колони. Избирателните изрази избират първите 11 колони A-K.

Как да поправя това?

Отговори:

4 за отговор № 1

Това се случва поради линията Columns("D:D").Select, Ако не изберете тази колона, кодът ще работи добре.

Използвайте това вместо това:

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

И, Как да избегнете избирането / активните изрази:)


2 за отговор № 2

Не използвайте изберете, за да направите това

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

1 за отговор № 3

Ако изберете колона, която съдържа обединени клетки, селекцията се разширява до всички колони, които пресичат тези обединени клетки. Във вашия случай са избрани 11 колони.

Освен това, Selection.Insert вмъква колкото се може повече колони: Voila.

Затова се уверете, че нямате обединени клетки в селекцията си.