Excel VBA вставить строку с форматированием - PullRequest
4 голосов
/ 18 ноября 2011

У меня есть макрос, который вставляет количество строк в зависимости от пользовательского ввода в Excel 2007. Все работает, но у меня все еще есть небольшая проблема. Я хочу скопировать полное форматирование из строки выше. Это работает только для некоторых ячеек в строке.

Вот код для вставки:

 Rows("B:B").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Можно ли это изменить?

лучший, США

Ответы [ 3 ]

5 голосов
/ 18 ноября 2011

Я не совсем уверен, как именно вы вставляете свои строки, но если вы вставите строку ниже существующей, по умолчанию будет выполнено форматирование строки над ней, по крайней мере, при использовании этого типасинтаксис:

Range("B2").EntireRow.Offset(1, 0).Insert

В этом примере будет вставлена ​​строка ниже B2, а формат (скажем, строка B2 выделен желтым) также будет желтым.Это может быть связано с тем, что этот тип вставки точно указывает, в какую строку вставлять.

0 голосов
/ 13 июня 2013
Dim j As Long, r As Range
j = InputBox("type the number of rows to be insered")

Set r = Range("A4")
Do
    Range(r.Offset(1, 0), r.Offset(j, 0)).EntireRow.Insert
    Set r = Cells(r.Row + j + 1, 1)

If r.Offset(1, 0) = "" Then Exit Do Loop
0 голосов
/ 18 ноября 2011

Ответ - первый комментарий.

Новый код:

Rows(CStr(InsRowNumber - 1) & ":" & CStr(InsRowNumber - 1)).Copy
Rows(CStr(InsRowNumber) & ":" & CStr(InsRowNumber)).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...