 VIP學(xué)員的問題,左邊是原始數(shù)據(jù),實(shí)際有800多條記錄,每2行復(fù)制,轉(zhuǎn)置成右邊的效果。也就是說,需要操作400多次才能實(shí)現(xiàn)全部轉(zhuǎn)換,想想都是一件吃力不討好的事情。 記住一句話,重復(fù)的事情,交給循環(huán)語句For Next去做,我們只需教她操作一遍即可。來,跟盧子一起看看。點(diǎn)開發(fā)工具,錄制宏,選擇區(qū)域B3:G4,復(fù)制,點(diǎn)I3,右鍵,轉(zhuǎn)置,停止錄制。 點(diǎn)開發(fā)工具,VB,模塊1,就可以看到剛剛錄制的宏。 先在代碼前后加上循環(huán)語句For Next,VBA的變量i可以從0開始。 這里是每2行,操作一遍,因此不需要進(jìn)行判斷。怎么表示區(qū)域向下0行、2行、4行等等?Excel里面的函數(shù)Offset可以向下,向右得到對(duì)應(yīng)的值,其實(shí)VBA里面也支持這個(gè)函數(shù)。Range("B3:G4").Offset(2 * i, 0)就代表區(qū)域向下0行、2行、4行。 同理,第一次從單元格I3開始轉(zhuǎn)置,第二次就得從I9開始,第三次就得從I15開始,也就是隔著6行,也就是Range("I3").Offset(6 * i, 0)。 到這里核心的代碼已經(jīng)修改完畢,可以運(yùn)行了。 當(dāng)然,你也可以對(duì)代碼進(jìn)行再一步簡(jiǎn)化,前提是你有一定的VBA基礎(chǔ)。如果不熟悉,這一步可以省略,別弄巧成拙。Sub 批量轉(zhuǎn)置() For i = 0 To 2 Range("B3:G4").Offset(2 * i, 0).Copy Range("I3").Offset(6 * i, 0).PasteSpecial Transpose:=True Next End Sub
鏈接:https://pan.baidu.com/s/1fitYWMcuUIMVAVXxFCatww?pwd=n4my 提取碼:n4my 陪你學(xué)Excel,一生夠不夠? 一次報(bào)名成為VIP會(huì)員,所有課程永久免費(fèi)學(xué),永久答疑,僅需 1500 元,待你加入。報(bào)名后加盧子微信chenxilu2019,發(fā)送報(bào)名截圖邀請(qǐng)進(jìn)群。 請(qǐng)把「Excel不加班」推薦給你的朋友
|