首頁 > 軟體

用EXCEL列印並儲存記錄

2019-12-05 21:55:14

在一些需要列印票據的時候,還想將所列印的資料儲存下來。比如「銷售單」,每列印一票,同時讓資料儲存到另一個工作表中,便於月末核對銷售總數及其他統計需要。
這次介紹的方法,就是在「票據列印」工作表中,每列印一張銷售單據,同時將票面資料依次儲存到「記錄」工作表中,便於核對。儲存完成後,自動清空銷售單中的資料,單據的號碼也會自動遞增一個數位,以便下一張單據輸入。

1

需要在同一工作簿中設定兩張工作表,一個是「票據列印」,用於列印單據,另一個工作表是「記錄」,用於儲存資料。
先在「票據列印」工作表中「畫」好所需要的單據樣式,如下圖:

其中E2單元格是單據的編號,可先輸入一個單據的起始單號。
C7單元格是數量匯總公式=SUM(C4:C6)
E4單元格是計算數量乘單價的金額公式=C4*D4,把這個公式向下拖動複製到E5與E6單元格。
E7單元格是金額彙總公式=SUM(E4:E6)
注意D2單元格的格式設定為「日期」格式。


2

根據「票據列印」工作表中的專案,在「記錄」工作表的第一行進行設定(專案的位置是由下面的程式碼決定的,大家可自己靈活調整)。


3

下面編寫列印並儲存的程式碼,按ALT+F11調出VBA視窗,插入一個使用者模組,把下面程式碼貼上進去。

Sub 列印()
'列印票據
Sheets("票據列印").Select
ActiveWindow.SelectedSheets.PrintOut '呼叫列印命令列印當前頁
'儲存資料
With Sheets("記錄")
x = .Range("a65536").End(xlUp).Row + 1 '取得「記錄」表中最後一個空行的行號(即寫入位置)
For i = 0 To 2 '商品資訊分三行,為了簡化程式碼,使用迴圈語句
.Cells(x + i, 1) = [b2] '客戶
.Cells(x + i, 2) = [d2] '日期
.Cells(x + i, 3) = [e2] '單據編號
.Cells(x + i, 4) = Cells(i + 4, 1) '商品名稱
.Cells(x + i, 5) = Cells(i + 4, 2) '規格
.Cells(x + i, 6) = Cells(i + 4, 3) '數量
.Cells(x + i, 7) = Cells(i + 4, 4) '單價
.Cells(x + i, 8) = Cells(i + 4, 5) '金額
.Cells(x + i, 9) = [b8] '收款人
.Cells(x + i, 10) = [e8] '複核人
Next
End With
'清除資料(單據編號E2格與有公式的單元格不用清除)
Range("b2,d2,a4:d6,b8,e8").ClearContents
'最後讓票據的號碼自動加1
s = Range("e2") '收據上的當前序號在E2單元格
Range("e2") = Left(s, 2) & Right("0000" & Right(s, 4) + 1, 4) '列印完畢後讓序號加一(編號的左兩位是字元,右四位是數位)
MsgBox "列印並儲存完畢", , "提示"
End Sub


4

為了方便執行程式碼,再新增一個按鈕,並指定「列印」巨集。

在EXCEL2003版中調出「檢視-工具列-表單」工具列,用滑鼠選其中的「按鈕」控制元件,在表格適當位置「畫」出一個按鈕,然後在它上面點滑鼠右鍵,選「指定巨集」,從彈出的巨集視窗中選擇「列印」,確定即可。
最後在新增好的「按鈕」上點滑鼠右鍵,從快捷選單上選「編輯文字」,輸入「列印並儲存」。
提示:如果是EXCEL2007使用者,新增按鈕要從「開發工具-表單控制元件」中新增。



5

至此,這個表格就可以使用了,每次在按「列印並儲存」按鈕後,票據中的資料自動儲存在「記錄」表中。在需要統計資料的時候,就可以通過函數從「記錄」表中統計出所需資料。
比如,想統計總銷售金額,可以用公式=SUM(H:H) ;統計張三的收款總金額,可用公式=SUMIF(I:I,"張三",H:H) ;統計乙商品的銷售總數量,可用公式=SUMIF(D:D,"乙商品",F:F) 。


6

其實本文的重點是「儲存」記錄,對票據樣式大家可自己根據實際設定,只要注意通過程式碼將「記錄」表中的專案要與「票據列印」中的專案對應就行了。程式碼中的第8行是通過迴圈語句寫三行資料(本文票據的行數為三行),如果您的資料不多,也可不用迴圈,直接用多個類似 Sheets("記錄").cells(x,1)=[b2]的語句就行。通過這個例子,大家可以掌握「儲存」記錄的方法,把它靈活運用以後,在現實工作中的很多地方都會用到。

IT145.com E-mail:sddin#qq.com