作者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/cn.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