作者darklimit (Yu)
看板Visual_Basic
標題[VBA ] Excel VBA 比對並複製貼上
時間Wed Nov 11 22:58:28 2020
各位大神
目前有個小需求是需要複製貼上
但For的寫法變成只是照貼
For i = 2 to 4
For j = 2 to 5
If sheet1.Cells(i,j) <> Sheet2.Cells(i,j) Then
Sheet1.Cells(i,j).Copy
Sheet2.Cells(i,j).PasteSpecial
Sheet1
10/1 10/2 10/3 10/4
A 1 1 1 1
B 2 2 2 2
C 3 3 3 3
Sheet2 資料只有首欄A, C, B及日期資訊,內容為空白
需要將Sheet1的資料貼到Sheet2
但因為首欄資料順序會變動,需要比對首欄後在貼上後面的值
現在的寫法結果是變成照貼,結果就會錯誤
C 應該是要3 B應該是要貼2,不知道應該怎麼修改才好?
麻煩各位大神提供建議,謝謝
Sheet2
10/1 10/2 10/3 10/4
A 1 1 1 1
C 2 2 2 2
B 3 3 3 3
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.110.189.141 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1605106710.A.345.html
1F:→ hulapig: 不太清楚你要的效果,程式碼是有不同就把sheet1同cell 11/12 00:29
2F:→ hulapig: 的值貼到sheet2,這跟把sheet1.range(a2:c5)照貼過去一樣 11/12 00:31
3F:→ lalacos123: 應該是在說 sheet1每行順序會變動 導致貼到sheet2會貼 11/12 00:58
4F:→ lalacos123: 錯吧?簡單來說是想要讓資料對號入座?不要B貼到C C貼 11/12 00:58
5F:→ lalacos123: 到A? 11/12 00:58
7F:→ darklimit: 謝謝B大的神解,這樣的寫法可以做到想要的結果沒錯 11/13 00:12
8F:→ darklimit: 沒有想到用Rows 的方式,比對到貼整列就可以了 11/13 00:14