方法是在一個Excel 檔案內,e.g.payroll.xls
在payroll.xls內,有兩張sheet,
一張叫details,一張叫payroll.
Details內列明每位員工的薪金
Payroll則是一張standard的糧單
每月出糧時,
我就要從Details相應格內抄每位員工的薪金/名字入payroll的薪金/名字格
e.g. =Details!D1
這樣薪金就會顯示出來
接著再print出來
到下一位員工就改為 =Details!D2
再print,
直到print完全公司的payroll
但我知道應該是有一些program code,
可以讓它自動抄下Details內的資料到payroll再自動print出來,
不停loop至全公司也print完為止..
就請各大大幫忙,告訴我怎寫這個code?
雖然公司不太多人,但每月也要這樣抄百多個資料也是很煩惱的...
謝謝!!
Re:kchan999999 但我公司沒有Access,要買一套SW公司又沒有錢, 所以唯有用原有方法..
Re: shin_bingo_dog 感謝你的方法,但由於我實是Excel的白痴,可以告訴我在excel的那兒放入這段Code? 另我在這提供更多資料,希望你可以幫幫我完成: 'Details'=>由D2至D53為人工,需轉入payroll的'I14'和'd7' 由A2至A53為人名,需轉入payroll的'B7' 由P2至P53為payroll no. 需轉入payroll的'B8'
就是這樣了, 另我想問一下,以後若果加/減人手時, 會有什麼setting嗎??
RE : shin_bingo_dog 謝謝你提供的程式, 我自己試圖改成自己所需並執行: Sub Macro1() ' ' Ro = 1 Sheets("Sheet3").Select Cells(1, 1).Select en = ActiveCell.CurrentRegion.Rows.Count
rep: Ro = Ro + 1 Sheets("Sheet3").Select Range("A2" & Ro).Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B7").Select ActiveSheet.Paste
Sheets("Sheet3").Select Range("D2" & Ro).Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("I14").Select ActiveSheet.Paste
Sheets("Sheet3").Select Range("P2" & Ro).Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B8").Select ActiveSheet.Paste
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True If Ro < en Then GoTo rep End Sub
但執行後出現: 執行階段錯誤'9': 陣列索引超出範圍 為什麼會這樣子>"
感謝大家回答: Re:shin_bingo_dog 但我的Details真的是在sheet3 payroll在 sheet2 呢.. error繼續在.. Re:新田美香: execute後, 出現: 'Range方法('_Worksheet'物件)失敗' ><...
在多次嘗試後, 我懷疑是否我入program的方法有問題? 我的方法是在payroll sheet中按'alt F11' 再'檢視'=>'程式碼' 這樣打下去..有錯嗎?
多謝兩位的解答!! 不知怎的,在我原有的payroll.xls上run兩位的code都是會有error, 但在抄在另一個new_payroll.xls run卻沒有.. 問題總算解決了.. 但我想加多一項條件才決定給誰分數,請見諒...
我想在new_payroll.xls內的details 加一項驗證, programme detect了該員工是'TRUE'的話,才把payroll print出來, 'FALSE'就不print.. 請問該如何加?? Thanks thanks!!