2016-01-12 114 views
0

如何將Sheet2中的某些單元格複製並粘貼到Sheet1並讓它們保持相同的屬性,如彩色文本和背景顏色?我想要做的是從兩個工作表中找到F列中的相同序列號(Worksheet1是沒有任何評論的新工作表,Worksheet2是帶有評論的舊工作表),然後通過匹配它的Assembly Number來確保它是正確的項目在E列中(因爲有許多重複的序列號和不同的程序集編號),最後,將Worksheet2中的列R,S,T中的註釋複製到Worksheet1。這似乎工作,但它只複製文本,而不是有色的字和背景色。這是我目前的。任何幫助將不勝感激。如何在一個範圍內放置一個變量?

Dim i As Integer 
Dim ii As Integer 

i = 2 
ii = 2 

For i = 2 To a 
    For ii = 2 To a    

     If Worksheets("Sheet1").Cells(i, 6) = Worksheets("Sheet2").Cells(ii, 6) Then 
      If Worksheets("Sheet1").Cells(i, 5) = Worksheets("Sheet2").Cells(ii, 5) Then 
       Worksheets("Sheet1").Cells(i, 18) = Worksheets("Sheet2").Cells(ii, 18) 
       Worksheets("Sheet1").Cells(i, 19) = Worksheets("Sheet2").Cells(ii, 19) 
       Worksheets("Sheet1").Cells(i, 20) = Worksheets("Sheet2").Cells(ii, 20) 
       Worksheets("Sheet1").Cells(i, 21) = Worksheets("Sheet2").Cells(ii, 21) 
      End If 
     End If 
    Next ii 
Next i 
+0

對不起,我忘了說我已經試圖在範圍內(如「R」我,「T」我)在第二如果聲明所以我可以利用整數「我」在它使當前行,但它不會採取它。我究竟做錯了什麼?還是有更簡單的方法來完成我想要完成的任務? – AdministrativeAssistantMike

回答

0

取而代之的是四大行用這個來代替:

Worksheets("Sheet2").Range(Worksheets("Sheet2").Cells(ii, 18),Worksheets("Sheet2").Cells(ii, 21)).copy Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(i, 18),Worksheets("Sheet1").Cells(i, 21)) 

或者你可以把它們放在一個With塊:

With Worksheets("Sheet2") 
    .Range(.Cells(ii,18),.cells(ii,21)).copy Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(i, 18),Worksheets("Sheet1").Cells(i, 21)) 
End With 

或者使它甚至更短;聲明作爲變量的工作表:

+0

非常感謝。我正在使用您提供的第一行代碼。我只是不明白代碼粘貼到哪裏?它雖然工作完美。 – AdministrativeAssistantMike

+0

@AdministrativeAssistantMike使用'.Copy'函數,目標是一個可選的標準。所以粘貼部分就是'.Copy'之後的所有東西 –

相關問題