[英]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.