[VBA ] Excel VBA 比對並複製貼上

作者: darklimit (darklimit)   2020-11-11 22:58:28
各位大神
目前有個小需求是需要複製貼上
但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
作者: hulapig (呼拉豬)   2020-11-12 00:29:00
不太清楚你要的效果,程式碼是有不同就把sheet1同cell的值貼到sheet2,這跟把sheet1.range(a2:c5)照貼過去一樣
作者: lalacos123 (大叔是隻貓)   2020-11-12 00:58:00
應該是在說 sheet1每行順序會變動 導致貼到sheet2會貼錯吧?簡單來說是想要讓資料對號入座?不要B貼到C C貼到A?
作者: by135tw (monkeytw)   2020-11-12 01:36:00
https://imgur.com/b8tZSYF 照L大的意思是這樣嗎?
作者: darklimit (darklimit)   2020-11-13 00:12:00
謝謝B大的神解,這樣的寫法可以做到想要的結果沒錯沒有想到用Rows 的方式,比對到貼整列就可以了

Links booklink

Contact Us: admin [ a t ] ucptt.com