2008年11月19日星期三

懶人計劃 3 – 自動製作文件的二次進化 PART 03 – 第一次執行 1

| |
~ 上傳‧分享‧網賺 ~
~ 免費上傳空間‧請即申請 Freak Share ~
~ 進入後請點選左上角 注冊 ! ~

~ 聲明事項 ~

如各位想把以下本文章轉貼 , 請記得要注明出處.

本文章之內容為本人之經驗所寫, 絕無抄襲成份, 特此聲明.

由於圖片製作需時, 所以更新會比較慢.

存放圖片的 SHARE A PIC SERVER 可能讀取速度較慢, 請耐心等待.

Picture



現在開始要做的 , 就是程式在第一次執行時要做什麼 , 首先要做的 , 是要知道有多少東西要做 , 所以 , 又要使用我們經常使用的程式碼 :

==========================================

Worksheets("Summary").Select
Worksheets("Summary").Range("B3").Select
ActiveCell.End(xlDown).Select
LastRec = ActiveCell.Row

==========================================

先選擇 SUMMARY 頁面的儲存格 B3 , 再利用 ActiveCell.End(xlDown).Select 來查詢最後一個記錄在那裡 , 之後 , 就利用變量 LastRec 來記錄這一個位置 LastRec = ActiveCell.Row .

現在記錄了所有記錄的數量了 , 之後就可以開始第一次使用 , 第一次使用時 , REF # 一定是 1 吧 , 所以程式碼是 :

==========================================

Worksheets("Invoice").Select
Worksheets("Invoice").Range("A2").Value = 1

==========================================

選擇 INVOICE 頁面 , 再把 INVOICE 頁面的儲存格 A2 的值改為 1 , 行了 ~

記得第一回時 , 我們說過的函數 CONCATENATE 嗎 ? 由於我們之前在 INVOICE 頁面所作出的修改 , 現在的查詢條件變更成為 REF 2# 中的資料 , VLOOKUP 的功能把對應的東西全都找了出來 , 現在 , 為配合今次的更新 , 我們要叫程式自動把有資料的地方都確定一下 , 所以增加了一句程式碼 :

==========================================

For CheckArea = 6 To 15
If Worksheets("Invoice").Range("C" & CheckArea).Value <> "" And Worksheets("Invoice").Range("D" & CheckArea).Value <> "" And Worksheets("Invoice").Range("E" & CheckArea).Value <> "" And Worksheets("Invoice").Range("F" & CheckArea).Value <> "" Then Worksheets("Invoice").Range("G" & CheckArea).Value = "Y"
Next CheckArea

==========================================

變量 CheckArea 的設定範圍是 6 到 15 ( 這是我們這個測試檔的設定吧 ~ ) , 如果 INVOICE 頁面的儲存格 C6 D6 E6 F6 都不是空白 , 那就在儲存格 G6 加上一個 “ Y ” 字 .

有了這個資料之後 , 我們就得到了一個必要的資料 : 有多少個 REF 2# 包含在一個 REF # 內 . 當然 , 不是放著就可以的 , 我們要電腦去幫我們計算一下 , 所以又要再一次增加程式碼 :

==========================================

Worksheets("Invoice").Range("G16").Select
ActiveCell.End(xlUp).Select
LastShowing = ActiveCell.Row

==========================================

先選擇 INVOICE 頁面的儲存格 G16 , 再向上找 , 找到第一個由下向上看 , 第一個有數據的儲存格位置 . 然後 , 用變量 LastShowing 來記錄下來 .

嗯 , 可能現在你會想到一個問題 , 為什麼儲存格 C6 到 儲存格 A16 都有資料顯示的我不用 , 就要用 G 的位置來找東西 ? 嗯 , 這個問題很好 , 我們的 VLOOKUP 函數公式的設定是 , 如果找到就顯示對應數據 , 否則就顯示空白 . 的確 , 現在我們看到的是空白 , 但是 , 如果你點選一下那些顯示空白的儲存格你就會發現 , 對電腦而言 , 這是有東西的 . 所以那些 xlUp xlDown 什麼的都不能應用在這裡 .


( Pic3_1 )

明白了嗎 ? 嗯 , 很好 , 我們繼續 ~ ( 感覺好帥哦 ~ 哈哈 ~ )

要知道有多少個記錄被顯示的話 , 就利用剛才的變量 LastShowing 減 5 吧 ~ 為什麼是 5 ? 很簡單吧 , 因為現在的測試設計中 , 儲存格 G6 才是第一個記錄位置 , G5 是空白的 , 只要計算出 LastShowing 的值與 5 的差距 , 結果就是有多少個記錄已經被顯示了 ~

==========================================

Ref2TTL = LastShowing – 5

==========================================

又再一次利用一個新的變量 Ref2TTL 來記錄這個 LastShowing – 5 的結果 . 嗯 , 有留意到之前的一句程式碼是 Worksheets("Invoice").Range("A2").Value = 1 嗎 ? 嗯 , 可能你已經在問 , 為什麼不先處理打印的問題 , 不過我想告訴你 , 這個只是很簡單的問題罷了 , 等一下才解決吧 ~

嗯 … 文章又太長了 , 下一編繼續吧 ~ 哈哈 ~

0 留言:

最新回應

Loading...

有事啟奏‧無事閒聊 ~ 哈 ~


米高積遜全復刻 哈利波特 Michael Jackson 妙麗 金曲獎 MJ 迈克尔杰克逊其实没有死!美国CBC电台已证实 哈利波特 hongkong168 蓮花河畔景苑 盧廣仲 鄧麗欣 不想放手New! 陳珊妮 方大同 巨乳排球 痞子英雄 23 東風 蕭閎仁 米高積遜全復刻 上海 倒塌 南王姐妹花 周杰倫 變形金剛2下載 michael jackson 去世 天文台 米高積遜 花拉科茜 天圖佈局 浪卡 耳廓狐 神探俏嬌娃 韶关旭日玩具厂 譚曉風 严妍 僧老少閒 地下天文台 金泰浩 百老匯 巨乳排球 陳振聰 柯柏文 aika 麥可傑克森