Excel教學系列-如和快速地通過數據列表生成表格並列印-1對1關係

2021-02-14 零式飛翼

這是我首次嘗試寫Excel教程,工作多年發覺很多同學始終被數據處理所困擾,故想把平時積累的一點點心得和經驗分享一下。

很多打工人們經常遇到一個問題,我左手有一堆數據,右手有格式一模一樣的表格,我要把數據填到這些表格,並且全部一份份列印出來,如何才能快速做到?一個數據一個數據地貼真是太悲慘了,比如員工的工資單、固定資產的盤點單、訂貨單、快遞單等

這個問題來自我原來的一位同事,前些天請我幫忙,也是知乎上不少人問過我的問題,我發現這個小小業務竟然困擾了很多人,所以準備把自己一個比較不成熟的解決方法分享出來,我們使用最簡單的VBA。

具體思路如下,設計兩張表格,一張是數據表,一張是單據模板:

數據列表:把我們要填入單子的數據以數據列表形式整理出來,形式如下:

注意點:我們需要將第一列固定資產號,作為非重複唯一值欄位 ,注意必須第一列

然後我們設計好單據模板,這裡可以調整好我們需要列印的格式:

注意點:我們現在B2單元格粘貼複製其中一個數據列表中的固定資產編號,也就是我們設定的非重複唯一值列表中的其中一個,然後其他幾個欄位內容我們用vlookup函數帶出來,這樣一來,一張模板就做好了

然後我們把表格保存成*.xlsm格式,這是一個可以帶宏運行模式的表格,接著點開Excel選項-自定義功能區-主選項卡複選框內把我們的開發工具勾選上

這樣一來,我們回到Excel主頁面可以看到開發工具選顯卡,我們從這裡進入Visual Basic功能區,進入我們的編程頁面

之後,會來到一個編程界面,我們在工程頁面,點擊-右鍵-插入-模塊

然後將以下代碼複製到模塊當中:

Sub createCard()'行索引Dim i As Long'存放臨時表單名Dim sname As String'從第2行開始i = 2'進入循環,如果數據列表A列第i行為空,或者出現結束文本內容,就結束循環'sname先保存數據列表中Ai位置的內容,也就是固定資產編號'然後複製一張單據模板,將單據模板中B2位置的內容,也就是數據編號欄位替換為當前的sname'將賦值出來的表格名稱改為sname,也就是固定資產編號,如此一來生成的表格不會重名'這也是為何數據列表一定要有一列是非重複唯一值欄位的原因Do    If Sheets("數據列表").Range("A" & i) = "" Or Sheets("數據列表").Range("A" & i) = "結束" Then Exit Do    sname = Sheets("數據列表").Range("A" & i)    Sheets("單據模板").Copy Before:=Sheets(1)    Sheets("單據模板 (2)").Range("B2") = sname    Sheets("單據模板 (2)").Name = sname    i = i + 1LoopEnd Sub

然後我們保存一下工程,回到Excel主頁面中,在數據列表這裡插入一個按鈕,連結一下我們剛寫的程序,這樣我們點一下按鈕程序就會跑起來了

Excel會讓我們選擇宏,我們只要指定剛才編寫的createCard()事件即可

然後我們按住ctrl鍵點擊按鈕,可以給它重命名:批量生成卡片

按一下,我們需要的表單都生成了!數據列表中的每條流水,都有了自己對應的表格

如果我們需要批量列印,那麼只需要,按住crlt選中數據列表和數據模板這兩張表,右鍵隱藏

然後在列印頁面選擇列印整個工作簿即可

如果下次要重用就先把隱藏的數據列表和表單模板放出來,把已經生成的表格都刪除就行了

是不是很簡單呢,是不是vba也不難呢?

然而這就結束了嗎,當然不是,通過這樣一個簡單的例子,我們要思考,背後隱藏了什麼原理?

這是一個非常典型的資料庫查詢模式,數據列表的呈現形式是很多管理系統中數據表的table,而單據模板,則是典型的view,我們可以在單據模板上加上更複雜的功能比如做一些欄位的運算、拼接、求值、判斷等,但這一切都來源於我們對數據列表的設計,正如我在《為什麼不用複雜的Excel函數一文》中中寫的那樣:數據處理和數據分析工作的前端是如何能夠快速高效地整理和存儲數據,如何切割數據之間的關係,滿足資料庫設計的範式需求又能滿足業務邏輯,可能還需要一點設計模式的概念,這會省去我們很多後期絞盡腦汁想一些奇技淫巧、寫完三個月自己都看不懂的代碼和函數,減少數據清理工作的工作量。

同時,這篇作為vba入門的基礎,同時涉及了幾個基本知識點:

如何創建vba工程、數據聲明、賦值、循環(進入和結束)、判斷、表格區域的定位模式(取值與賦值)

相信很多同學看到這裡,肯定覺得vba不難,不需要去學習很長的視頻,也不需要花錢去培訓班,甚至書都不需要買,哪裡不懂在Excel按F1,查詢內容,依樣畫葫蘆,不知道功能怎麼用直接錄製宏,根據系統生成的宏代碼拿來就用即可。

如果你有同樣的業務困擾,試著根據以上步驟練習一下,拿自己的數據修改一下,跑一下試試,相信會有收穫,同時也思考下如果數據列表第一列值不唯一的時候會發生什麼呢?

下集預告:《如和快速地通過數據列表生成表格並列印-1對多關係》

將用三種方法講解,由於篇幅很長,所以會拆成三章

敬請期待!

相關焦點

  • excel表格公式那麼多,如何才能自動化生成數據報表?
    第一步:將需要收集的垃圾分類信息編製成一個Excel表格並列印出來;第二步:將垃圾分類投放情況用筆一一記錄好;第三步:將記錄好的垃圾分類情況錄入excel並分類匯總,繪製圖表。1.快速製作內容豐富的表單傳統的信息收集,如果使用WORD,表格製作排版耗時較長;如果使用EXCEL,第一行設置需要填寫的信息,界面不夠好看。不僅如此,WORD和EXCEL都會存在一個問題,每個信息填錯了,也不會顯示錯誤,只能後期再去詢問正確的信息,非常浪費時間和精力。
  • 標籤列印軟體處理Excel數據批量列印條碼標籤
    條碼標籤列印軟體一般都具有連接各種資料庫,如TXT、Excel、Access、MySQL等進行條碼、文字、圖片等批量製作的功能。在讀取數據的時候一般都是整條讀取,但是如果生成的標籤內容只是這些資料庫信息的一部分。
  • 教你1招,快速去除excel表格內重複數據,超速提升工作效率
    對於傳統的紙媒教學來說,進入網際網路+教育之後,老師們需要掌握的技能也越來越多,以往對於教學如果涉及到多媒體,更多只有教學多媒體課程的老師才略知一二,很多時候其他學科的老師想要在線上處理一些文件,都需要請假多媒體老師,但是當前科技的進步,每個老師都必須要去掌握這些線上教學技能,其中涉及最多的可能要數office excel了;當老師們接到統計工作時,特別是班主任,需要在短時間內進行數據核對
  • Stata用putexcel命令創建Excel表格1:概念和框架
    或者你想寫一個創建類似表格的文件。我不可能預知大家可能想要的所有不同的布局,所以我準備寫系列的博文來告訴大家如何創建自己的Excel表格。我甚至會向你們展示如何創建自己版本的ExcelTable。今天我們將重點討論設計表達式和單元格的格式。
  • 教你1招,快速去除excel表格內重複數據,超速提升工作效率!
    對於傳統的紙媒教學來說,進入網際網路+教育之後,老師們需要掌握的技能也越來越多,以往對於教學如果涉及到多媒體,更多只有教學多媒體課程的老師才略知一二,很多時候其他學科的老師想要在線上處理一些文件,都需要請假多媒體老師,但是當前科技的進步,每個老師都必須要去掌握這些線上教學技能,其中涉及最多的可能要數office excel了;當老師們接到統計工作時
  • excel表格列印怎麼變大? excel表格列印效果變大的方法
    excel表格列印怎麼變大? excel表格列印效果變大的方法時間:2018-04-03 10:10   來源:系統天堂   責任編輯:沫朵 川北在線核心提示:原標題:excel表格列印怎麼變大? excel表格列印效果變大的方法 excel表格列印怎麼變大?
  • excel表格自動調整列印區域怎麼設置? Excel自動調整列印區域圖文...
    excel表格自動調整列印區域怎麼設置? Excel自動調整列印區域圖文教程時間:2018-04-12 11:00   來源:系統天堂   責任編輯:沫朵 川北在線核心提示:原標題:excel表格自動調整列印區域怎麼設置? Excel自動調整列印區域圖文教程 excel表格自動調整列印區域怎麼設置?
  • 文職美女上班手動用Excel表格太麻煩,當學會python後easy操作
    通過程序操作excel表格是編程中比較常見的操作,python本身不能直接操作excel,需要安裝第三方的模塊來實現excel的操作。Python中可以操作excel模塊主要有:1、xlrd 模塊實現exlcel表格讀取2、xlwd 模塊實現excel表格創建和寫入3、pandas模塊也可以實現excel常規操作
  • Excel教程:1分鐘搞定1000條Excel超連結目錄
    全選所有要添加到目錄中的表(按住Shift全選)——在表格第一列前添加空白列——在任意單元格中輸入公式「=xfd1」Step2:自動生成「超連結列表」通過通配符篩選所需要的訂單5. 銷售毛利表:渠道和毛利篩選分析6. 高級篩選快速提取不重複數據7. 效率小貼士:不為人知的橫向篩選小妙招
  • 一文學透:excel表格數據統計圖表製作,班主任必看!
    在網際網路高度發達的當代,數位化教學已成為了當前各大高校及k12學校的主要教學方式;對於數位化教學的普及,老師們也隨之需要掌握關於數位化教學的相關技能,其中在教學過程中用得最多的工具就要數excel了,它本身具備的強大功能,對於掌握其技能的老師們來說,勢必是提升他們辦公效率的重要手段
  • excel表格下拉菜單/列表怎麼做,6分鐘教會你!
    本篇將介紹excel表格下拉菜單/列表怎麼做,6分鐘教會你!有興趣的朋友可以了解一下!excel是我們經常使用的一款表格製作工具,相信大家對它都很熟悉了。之前小編寫過excel二級聯動下拉菜單的教程,但是還有一部分人還不會製作excel一級下拉菜單,今天小編閒來無事就出一個excel下拉菜單的製作教程,希望能幫助大家!
  • excel表格二級聯動下拉菜單/列表的製作教程 - 國哥筆記
    本篇將介紹excel表格二級聯動下拉菜單/列表的製作教程,有興趣的朋友可以了解一下!excel是我們生活中很常用的表格製作工具,對它的一些常用操作相信大家都很熟悉了。但是對excel表格中二級聯動下拉菜單的製作很多人還不會,今天小編就分享一下excel表格中二級聯動下拉菜單/列表的製作教程,希望對大家有所幫助!
  • Excel表格製作教程:1分鐘搞定1000條Excel超連結目錄
    點擊圖片   1元搶購 Excel、Word、PPT全套課程工作中面對大批量的excel表格
  • 用Excel和Word快速製作學生家庭報告書
    用Excel和Word快速製作學生家庭報告書期末是班主任最忙碌的時候,單是家庭報告書的填寫,就是一件讓人痛苦的事
  • 手把手教你如何快速複製Excel表格數據
    在工作過程中,我們有各種不同的表格數據。他們分布在不同的excel表格文件中,處理其中數據是造成很大的不便,降低了工作效率。下面我們來聊聊,如果通過程序快速的將excel表格數據複製到我們指定的表格當中,讓我們的數據處理更加方便快捷。
  • Excel和WPS都可用的快速處理表格方法
    在處理Excel表格的時候,尤其是處理別人提供的數據裡面信息很亂不好處理,今天給大家介紹一些小技巧,可以更方便地處理這些信息。03列印的時候列表不在一張紙上曾經有一次在列印東西的時候,紙唰唰往外出就是不停,還以為是印表機壞了,其實原因就是沒有把所有列列印到一頁裡面。設置方法很簡單,在視圖裡面找到分頁預覽,把分頁線拖到最右邊,這樣就可以列印出所有列。
  • 柳小白Python學習筆記33 Excel表格處理1
    從今天起開始學習使用python的pandas模塊處理Excel表格。以「光大2020年1月.xls」為例,此工作薄包含「bwz」和"wz"兩個工作表。下圖展示的是第二個工作表即「wz」工作表。33-1首先打開「2020年1月.xls」工作簿,需要使用pandas.read_excel( ),這個函數有許多參數,本次用到「io」和「sheet_name」兩個參數:io參數,表示要打開的文件的路徑;
  • Excel表格中最經典的36個技巧,全在這兒了.(上)
    、表格只能填寫不能修改技巧29、文字跨列居中顯示技巧30、批註添加圖片技巧31、批量隱藏和顯示批註技巧3、列印標題行如果想在列印時每一頁都顯示標題,頁面布局 - 列印標題 - 首端標題行:選取要顯示的行
  • 在列印Excel電子表格時,如何為每頁自動生成時間
    每天都要處理好多好多電子表格?一天列印無數份,三天就鬧不清哪份是哪天列印的了?今天小編給大家分享一個Excel小技巧,可以在列印電子表格時,自動生成當前列印的時間。這裡我們以大家常用的Excel2010為例,來為大家詳細講解展示第一步:點擊「文件」選項卡找到「列印」,這裡的列印不是直接列印按鈕,而是「列印預覽」,這裡的「列印」不同於快捷按鈕」列印「。
  • Excel的高級應用-怎麼將表格列印在一張紙上面?
    word主要是用來文章排版;power point(PPT)主要用來製作幻燈片;而excel主要是用來做數據整理的。正版的辦公軟體是word、excel、PPT。但其實我們工作中用WPS還是最多了,因為更新到2019版本的時候,WPS已經將這三個軟體歸到一個軟體裡面了,功能基本上能滿足我們日常工作使用了,需要哪個在新建的時候直接點選即可。