我想製作一個工作表,可以用作向客戶列印的收據,這是基本佈局:
- 客戶聯絡方式(姓名、地址等)這些是固定字段,可能為空
- 標題行:“商品|數量|價格|總計”
- 包含任意行數的動態表,一行對應客戶購買的每一篇文章
- 頁腳行包含文章總數和總金額
我正在努力解決的是如何使動態表發揮作用。目前,我為每篇新文章手動插入一行,但這在非常繁忙的情況下很麻煩。我希望 Excel 預設顯示一個空白行,然後每次前一行包含任何資料時插入下一行,自動將頁腳向下移動一行並更新用於計算總數量的公式。和金額。
這有可能嗎?
答案1
正如對您和任何其他嘗試這樣做的人的警告:
現在你應該思考:
- 每個客戶我會多久使用一次?
- 有多少客戶?
- 我將如何輸入這些項目?
- 有多少種不同的物品?
這些都是最重要的問題。我已經做得相當確切地,您正在嘗試為一家非常小的公司做什麼,每月大約有 3 張收據。
一如既往,請快速、便宜、卓越。然而,上面這些問題沒有人問。主要是因為便宜&優秀而已。現在,無論何時搜尋、更正收據,但主要是在添加商品時,都浪費了多少時間,這是顯而易見的。更不用說同一物品存在多少種不同形式。然而,用 Excel 修正這個問題是可能的,但恕我直言,真的很痛苦。 EPR 現已設置,也讓客戶信服。
這是一個資料庫任務。它就像資料庫任務的最佳範例之一!
此外,這甚至可能值得小型企業 ERP 系統。在德國,我向您推薦 JTL-Wawi。
但是,如果跳躍太大,您應該真正考慮使用 Access。
一些優點:
- 您可以管理您的客戶
- 您可以管理您的物品
- 你可以移動你的動態行為來訪問
- 您可以輕鬆管理您的收據
- 您仍然可以使用 Excel 作為輸出系統
這將如何運作?
您將有一些表格,用於存放客戶和物品以及收據。收據表將客戶與其商品和其他收據相關屬性連接起來。
然後,您可以為基本收據建立設計的報告,並從訪問中列印它。或用excel選擇收據,取得資料並列印。因為資料是預先決定的,所以您會知道有多少行/列正在傳入,以及它們的上下文是什麼。
然而 - 這個輪子已經被發明了很多次,所以你應該研究一下已經存在的輪子;)
編輯
基於您的行為請求的解決方案可以在此處使用此嘗試:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = clngColumnRightToLastGrade Then
Application.EnableEvents = False
'offset selection, one row down, two cols to left
Target.EntireRow.Insert (xlShiftDown) 'insert new row
Target.Offset(1, -2).Select
Application.EnableEvents = True
End If
End Sub
您當然可以改用該Change
事件,並且可能必須將此行為限制在動態清單或其工作表的最大範圍內。
或者只需為每個快捷鍵建立一個巨集即可在此處執行此行:
Target.EntireRow.Insert (xlShiftDown) 'insert new row
您需要確定目前選定的儲存格具有範圍Target
。