簡體   English   中英

excel vba插入帶格式的行

[英]excel vba insert row with formatting

我有一個宏,根據Excel 2007中的用戶輸入插入多行。一切正常但我仍有一個小問題。 我想從上面的行復制完整的格式。 它僅適用於行中的某些單元格。

這是插入的代碼:

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

是否有可能改變它?

最好的,美國

我不確定你是如何插入行的,但是如果你在現有行之下插入行,它將默認采用它上面的行的格式,至少在使用這種類型的語法時會這樣做:

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

在此示例中,它將在B2下方插入一行,格式(例如,B2的行突出顯示為黃色)也將為黃色。 這可能與這種類型的插入確切地指定要插入哪一行的事實有關。

對於那些不想從父范圍繼承格式的人,請使用.cells() .rows(2).insert將繼承格式,而.cells(2).insert則不會。

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

答案是第一個評論。

新代碼:

Rows(CStr(InsRowNumber - 1) & ":" & CStr(InsRowNumber - 1)).Copy
Rows(CStr(InsRowNumber) & ":" & CStr(InsRowNumber)).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM