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 麥可傑克森