2014-03-25 103 views
0

我有這段代碼,我試圖在複製信息時添加一行。我遇到的問題是它在它們之間增加了一條線,並對信息進行擾頻。我有一個總共在底部的模板工作表,並且基本上希望它在行被填入時被按下。使用宏將行添加到Excel中

任何幫助將是巨大的

Sub SummurizeSheets() 
Dim ws As Worksheet, wsSummary As Worksheet 
Dim c As Range 

Range("A4:D31").Select 
Selection.ClearContents 

Application.ScreenUpdating = False 
Set wsSummary = Sheets("Summary") 
' Set destination cell 
Set c = wsSummary.Range("A4") 

For Each ws In Worksheets 
    If ws.Name <> "Summary" Then 
     ActiveCell.EntireRow.Insert 
     ws.Range("D1").Copy 
     c.PasteSpecial (xlPasteValues) 
     ws.Range("E4").Copy 
     c.Offset(0, 1).PasteSpecial (xlPasteValues) 
     ws.Range("J39").Copy 
     c.Offset(0, 2).PasteSpecial (xlPasteValues) 
     ' Move destination cell one row down 
     Set c = c.Offset(1, 0) 
    End If 
Next ws 
Application.ScreenUpdating = True 
End Sub 
+0

嘗試改變'和'c.EntireRow.Insert' ActiveCell.EntireRow.Insert'和刪除此行'集合C = c.Offset(1,0)'。 – L42

+0

沒有運氣。按照建議插入並移除。它只能從一張工作表中複製信息並添加適量的行。或者,如果我將它添加到編碼中的另一個地方,它不會添加行並刪除底部價格的「總計」文本,因爲它沒有添加任何行。 – Aussiehelper

+0

好吧,即使你設置了你的'範圍',它在使用'插入方法'時會自動調整。所以當你插入時,你的'c'的值就變成'Range(「A5」)'。要正確寫入'c'(A4),請使用'Offset(-1,0)'。看我的帖子。 – L42

回答

2

試試這個,然後:

Sub SummurizeSheets() 
Dim ws As Worksheet, wsSummary As Worksheet 
Dim c As Range 

Application.ScreenUpdating = False 
Set wsSummary = Sheets("Summary") 
Set c = wsSummary.Range("$A$4") 

For Each ws In Worksheets 
    If ws.Name <> "Summary" Then 
     c.EntireRow.Insert xlDown, xlFormatFromLeftOrAbove 
     Set c = c.Offset(-1, 0) 
     ws.Range("D1").Copy 
     c.PasteSpecial xlPasteValues 
     ws.Range("E4").Copy 
     c.Offset(0, 1).PasteSpecial xlPasteValues 
     ws.Range("J39").Copy 
     c.Offset(0, 2).PasteSpecial xlPasteValues 
    End If 
Next ws 
Application.ScreenUpdating = True 
End Sub 
+1

+1 - 如果OP需要從上到下的列表,則可以解決問題。如果他沒有,那麼他們可以刪除原始代碼中的插入行。 –

+0

這工作。不知道爲什麼,但似乎正在製作它像原始文件一樣複製的文本。大膽和藍色。沒有什麼大問題只是在完成後對風格進行格式化。非常感謝您的幫助。 – Aussiehelper

+0

我通過在它上面添加一行並修改樣式來修復它。我將Set c = wsSummary.Range(「$ A $ 4」)更改爲Set c = wsSummary.Range(「$ A $ 5」)。 Made Row 4是我想要的風格,現在它一切正常。 – Aussiehelper