會員 ![]() | 【求助】Excel分組列印問題 想請問一下 底下附件Book1.xls裡面有三頁 HAD 表頭 ROW 資料 DATA 要印出來的畫面 因為資料查出來後不確定會產生幾組HAD和ROW HAD一組搭配數條ROW然後貼到DATA去,列印出來 HAD和ROW與其他組中間用空白一行相隔 請問我要如何先把第一組HAD和ROW貼到DATA後印出 再把DATA資料清掉換下一組列印一直到沒資料為止? 小弟沒學過VB只會簡單的錄製巨集,可以告訴小弟該如何做嗎?感謝 ![]() |
回覆 |
會員 ![]() | 這個用錄的一定錄不出來...因為有不確定的列數.. 應該要寫一段VBA Code吧.... 寫法應該是以HAD當master...HAD每列之間不用空白... 一列就去抓ROW裡面的資料...一抓到空白就停... 應該是這樣...@@? |
回覆 |
會員 ![]() | 引用:
謝謝! | |
回覆 |
Take it easy~ | 一個巨集就夠,Macro2不需要了。 語法: Sub Macro1() Sheets("DATA").Select Set head_cell = [B3] 'HAD要貼的位置 Set rows_cell = [A7] 'ROW要貼的位置 'heads和rowss分別是HAD和ROW的所有資料 Set heads = Sheets("HAD").Cells.SpecialCells(xlCellTypeConstants) Set rowss = Sheets("ROW").Cells.SpecialCells(xlCellTypeConstants) '判斷共有幾組資料,逐一進行迴圈 For n = 1 To heads.Areas.Count '複製第 n 組HAD,以轉置(橫變直)的方式貼上 heads.Areas(n).Copy head_cell.PasteSpecial Transpose:=True '清除DATA的ROW區域(不含標題) rows_cell.CurrentRegion.Offset(1, 0).Clear '複製第 n 組ROW到DATA的ROW區域 rowss.Areas(n).Copy Destination:=rows_cell 'MsgBox "列印第" & n & "組" ActiveSheet.PrintOut Copies:=1, Collate:=True Next n [A1].Select End Sub 值得注意的是 SpecialCells, 它的妙用就是可以取得符合指定資料類型(此例為常數)的儲存格物件, 而且因符合的儲存格可能是不連續的範圍區域, 可利用 Areas 取得區域個數及每個區域的內容, 如此就省去判斷每一組資料的位置和範圍了。 補充: 要應用這個程式需注意兩個資料來源 (此例為HAD, ROW) 必須相對應, 除了組數要相同,每組之間也都至少要空一行。 有這些限制是因為巨集是為此案例量身打造的, 要適用別種情形也許要稍做修改。 |
回覆 |
|
XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。