~ 上傳‧分享‧網賺 ~
~ 免費上傳空間‧請即申請 Freak Share ~
~ 進入後請點選左上角 注冊 ! ~
~ 聲明事項 ~
如各位想把以下本文章轉貼 , 請記得要注明出處.
本文章之內容為本人之經驗所寫, 絕無抄襲成份, 特此聲明.
由於圖片製作需時, 所以更新會比較慢.
存放圖片的 SHARE A PIC SERVER 可能讀取速度較慢, 請耐心等待.
嗯 , 之前說過這一回要廢話小一點的 , 好 , 來吧 , 先在 INVOICE 頁面加一個按鈕 ( 怎樣加 !? 自己想一想哦 ~ 之前有教過的 ~ 呵呵 ~ )
( Pic5_1 )
然後 , 加入下面的程式碼 ~
=====================================
Private Sub CommandButton1_Click()
Worksheets("Invoice").Activate
Worksheets("Invoice").Range("A2").Value = ""
a = Worksheets("Invoice").Range("A6").Value
b = Worksheets("Invoice").Range("A10").Value
Worksheets("Invoice").Range("A2").Value = Worksheets("Invoice").Range("A6").Value
c = b - a
For aa = 1 To c
ActiveSheet.PrintOut from:=1, To:=1, copies:=1
Worksheets("Invoice").Range("A2").Value = Worksheets("Invoice").Range("A2").Value + 1
Next aa
ActiveSheet.PrintOut from:=1, To:=1, copies:=1
End Sub
=====================================
Worksheets("Invoice").Activate 是買一個保險 , 確保現在使用中的是 Invoice 頁面 .
然後 , 把儲存格 A2 的資料清除 ( 當然 , 第一次用的時候是沒有資料的 , 但是當這個檔案是第二次使用的時候 , 這裡就會有資料了 , 所以要清理一下 )
設定變數 A 為儲存格 A6 的值 , 變數 B 為儲存格 A10 的值 , 再把儲存格 A2 的值改成 A6 的值 .
設定變數 C 的值為 變數 B 減 變數 A ( 這個是重複次數 , 因為每次的重複次數都不同 , 所以叫電腦自己找出來就好了 ~ )
ActiveSheet.PrintOut from:=1, To:=1, copies:=1 這一句是打印的控制 , FOR AA 和 NEXT AA 中間 , 第一個步驟就是打印一份 , 理由很簡單 , 因為在開始重複之前 , 我們已經把儲存格 A2 的值改了一次 , 所以 , 當 AA 是 1 的時候 , 在開始改善儲存格 A2 的值之前 , 第一件事就要把文件打印一份出來 , 否則我們就會欠了一張 )
Worksheets("Invoice").Range("A2").Value + 1 這句就是要儲存格 A2 的值再加 1 , 打個比喻 , 在儲存格 A6 輸入 10 , A10 輸入 20 , 那麼在程式執行的時候 , 第一件事就是把儲存格 A2 的值換成儲存格 A6 的值 , 也就是說現在儲存格 A2 的值是 10 , 打印一份之後 , 就打儲存格 A2 的值加 1 , 現在儲存格 A2 的值是 11 , 再打印一次 , 之前有說過 , 變數 C 是以 變數 B 減去 變數 A 所得出來 , 現在 變數 C 的值就是 20 - 10 = 10 .
FOR AA 到 NEXT AA 中間的程式碼一共執行 10 次 , 看一下資料
變數 AA = 1 , NEXT AA 之前 , 儲存格 A2 的值是 10 + 1 , NEXT AA , 現在儲存格 A2 的值是 11
變數 AA = 2 , NEXT AA 之前 , 儲存格 A2 的值是 11 + 1 , NEXT AA , 現在儲存格 A2 的值是 12
變數 AA = 3 , NEXT AA 之前 , 儲存格 A2 的值是 12 + 1 , NEXT AA , 現在儲存格 A2 的值是 13
變數 AA = 4 , NEXT AA 之前 , 儲存格 A2 的值是 13 + 1 , NEXT AA , 現在儲存格 A2 的值是 14
變數 AA = 5 , NEXT AA 之前 , 儲存格 A2 的值是 14 + 1 , NEXT AA , 現在儲存格 A2 的值是 15
變數 AA = 6 , NEXT AA 之前 , 儲存格 A2 的值是 15 + 1 , NEXT AA , 現在儲存格 A2 的值是 16
變數 AA = 7 , NEXT AA 之前 , 儲存格 A2 的值是 16 + 1 , NEXT AA , 現在儲存格 A2 的值是 17
變數 AA = 8 , NEXT AA 之前 , 儲存格 A2 的值是 17 + 1 , NEXT AA , 現在儲存格 A2 的值是 18
變數 AA = 9 , NEXT AA 之前 , 儲存格 A2 的值是 18 + 1 , NEXT AA , 現在儲存格 A2 的值是 19
變數 AA = 10 , NEXT AA 之前 , 儲存格 A2 的值是 19 + 1 , NEXT AA , 現在儲存格 A2 的值是 20
問題出現了 , 當 AA = 10 , 儲存格 A2 的值是 20 的時候 , 這份不用在 FOR AA 到 NEXT AA 中打印出來 , 所以為了要保證這份都會打印 , 所以程式碼的最後部份 , 又加多了一句 ActiveSheet.PrintOut from:=1, To:=1, copies:=1 , 讓電腦都打印出來才完結程式 .
程式結束了 ~ 呵呵呵 ~ 鬆了一口氣 ~ 只要在 SUMMARY 打好了用作記錄的資料 , 就可以一次過打印我要的文件 ~ 哈 ~ 可以小睡一會 ~ 哈哈 ~
好 , 現在要提醒你一些使用這個設計會遇到的問題 :
第一 , 函數的設定不可以錯 , 如果錯了的話 ~ 嘿嘿嘿 ~ 打印出來的資料就錯定了 ~ 我指的是 VLOOKUP 的從那裡找到那裡 ( $A$2:$S$65536 ) 和在這個範圍來 , 找那一行 ( ,1,0 ) 的設定 , 千萬不可以錯哦 ~
第二 , 記得在測試列印之前 , 一定要把列印範圍設定好 !! 否則列印出來的會包括了那些不需要的東西 .
第三 , 如果只需打印一個記錄編號 ( REF# ) 的發票 ( INVOICE ) , 只需要把記錄編號打在儲存格 A2 之中 , 打個比喻 , 如果要列印的是記錄編號 7 , 只需要在儲存格 A2 打上 7 , 不要在 A6 和 A10 都打上 7 .
第四 , 這個程式已經有進化版 , 但是那個要遲一點再貼 , 很多東西都未準備好 XD
=====================================
好了 ~ 這次的分享又是時候要結束了 , 也是時候要去準備一下 , 下一次要分享的是什麼東西 , 到底是這個程式的進化版本 , 還是我的其他跟亂來沒分別的習作呢 ~ 讓我先想一想吧 ~ 哈哈 ~ 記得要想我哦 ~ XD
官爺 ~~~ 記得留言哦 ~~~~ 寫句 " 到此一遊 " 也可以吧 ~ 哈哈 ~
6 留言:
太讚了
學到超多東西的
感謝威廉大大了 m(_ _)m
最近在幫公司想個可以查詢跟增加紀錄的小VBA程式
現在學到了增加紀錄的
剛好可以派上用場
謝謝您了 m(_ _)m
哈哈~ 你這樣說 ... 哈哈 ~ 我害羞耶 ~ XD
如果我的小小經驗分享對你有幫助的話 , 請多點來留言哦 ~ 你的留言就是我的鼓勵 :)
當然了~ 遇到難題的話也可以跟我說哦 ~ 多交流才會有進步嘛~ 哈哈 :)
太精彩了!!
一口氣從[免費 Excel VBA 初階教學 ] 拜讀到這裡, 講解的好清楚---媲美補習班的名師, 我會繼續努力的. 謝謝你!!
阿佩
我說阿佩啊~
看到你的留言我真的有點想哭了耶 ~ 名師耶~ 哈哈 ~ 多麼讓人感到暢快的字眼哦 ~ 感動得快瘋了 XD
記得要再來哦 ~
打個廣告 ~ 新系列快要推出了~ XD
請問 vlookup 的資料是要從另一個execl檔抓的話應該怎麼寫 ?
你好~我想要在執行巨集的時後 VLOOKUP(B2,SUMMARY!$A$2:$S$65536,1,0) B2的值能在我執行時讓我自己輸入,應該要怎麼寫??
謝謝!!
發佈留言