Excel 中的計數器

Excel 中的計數器

我的檔案裡面有50張,每張都是標準表格。讓我們命名為 Form1、Form2、Form3。

我想建立一個列印表,在其中選擇我想要查看的表單,這樣我就不需要在工作表之間導航來找到所需的表單。我想在這張列印紙上有一個計數器,每次我發送到印表機時它都會計數。

到目前為止我做了什麼?我創建了這個公式,其中 M1 是包含表單名稱的下拉清單。因此,如果我想查看 Form2,我在下拉清單中選擇 Form2,公式將顯示所有 Form2 工作表。

=IF($M$1="Form1";IF('Form1'!A1="";"";'Form1'!A1);"")&IF($M$1="Form2";IF('Form2'!A1="";"";'Form2'!A1);"")&IF($M$1="Form3";IF('Form3'!A1="";"";'Form3'!A1);"")

它工作正常,因為所有表格都是標準化的。

選擇所選表格後,我需要插入我公司的身份證號碼,然後列印。

我想知道是否可以在這張表中創建一個計數器來計算我打印的次數...或者當我保存或更改任何內容時按時間順序計數的任何內容...

答案1

您的所有要求都可以滿足。但恐怕只能使用 VBA。

保留下拉式選單,但也加入一個觸發巨集的按鈕。

在巨集中,讀取帶有下拉清單的儲存格並發送相應的工作表進行列印。然後更新適當的計數器,該計數器可以位於與下拉清單和按鈕相同的頁面上的一組儲存格中。

要計算保存次數,您需要一個 before_save 函數的巨集。你需要搜尋一下,我想我的部落格上可能有一篇關於它的文章,不記得了,我已經好幾年沒做過了。其原理與前面的巨集相同,只需將 1 新增至對應的儲存格即可。

答案2

建立「列印表格」(將顯示其他 50 張表中的一張的內容)的一種更簡潔的方法是將儲存格A1設為

=INDIRECT($M$1 & "!A1")

它建立一個看起來像您想要查看的單元格的限定名稱的文本字串,然後使用該INDIRECT()函數取消引用該字串(即,將其視為單元格地址並檢索所識別單元格的內容) 。這樣,您在添加Form51.警告:

  • 這可能會導致 Excel 在任何時候都做大量工作(即花費大量時間)「重新計算」這些間接單元格任何事物變化(不僅僅是M1)。我不確定它是否會比你現在的情況更糟。
  • 當您想要更新時,請務必避免更改資料或在「列印表」中輸入新資料的誘惑Form42。 (當然,您現在遇到了這個問題。)您可以透過保護列印頁面來保護自己免受此類事故的影響。

還有其他方法可以建立列印表;例如,使用 VBA

  • 建立一個使用者定義的函數,可以代替INDIRECT()調用,但操作更順暢,或者
  • 實際上,每當您更改時,都會將所有資料複製到列印表中。FormnnM1

您可以透過編寫 VBA 例程來計算變更Worksheet_Change

我不知道有什麼方法可以讓工作表的邏輯在列印時能夠進行計數/檢測。但是,您也許可以透過用 VBA 編寫列印例程來實現所需的效果。 A

PrintOut , , , True

聲明將為您列印該表;新增您想要的任何其他操作(例如,增加計數器)。 (你只需要記住打印使用這個宏.) 第四個參數PrintOut預覽,設定為True 讓 Microsoft Excel 在列印工作表之前呼叫列印預覽(從而為您提供取消選項)或False(或省略)立即無條件列印工作表。

如何在 MS Office 中新增 VBA? 有關的信息,嗯,你知道。

相關內容