2008年11月20日星期四

懒人计划 3 – 自动制作文件的二次进化 PART 06 – 是一样还是不同 1

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

~ 声明事项 ~

如各位想把以下本文章转贴 , 请记得要注明出处.

本文章之内容为本人之经验所写, 绝无抄袭成份, 特此声明.

由于图片制作需时, 所以更新会比较慢.

存放图片的 SHARE A PIC SERVER 可能读取速度较慢, 请耐心等待.

Picture



第二次执行程序时 , 情况比第一次执行简单很多 , 因为不用像第一次执行时一样考虑这个衡量那个 , 所以程序代码的编写比较简单 , 而且可以利以复制贴上来写 , 嗯 , 只要轻轻修改一下就可以了 ~

首先 , 情况还是一样 , 先要找到所有记录的最后一行 , 所以程序代码必须有以下的几句 :

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

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

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

用意一样 , 方式一样 , 纯粹的 COPY 和 PASTE ~ 哈哈 ~ ( 懒人素质发挥得淋漓尽致嘛 ~ 哈哈 ~ ) , 嗯 , 然后再增加一个变量 COUNTER , 把 COUNTER 的值设定为 0 , 为什么是 0 嘛 ~ 等一下再说 ~

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

Counter = 0

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

今次比之前做第一次执行的程序不同的地方是 , 今次并不需要先告诉计算机怎样的执行一次 , 直接要它重复操作方式就可以了 ~

首先 , 我们要确定那些数据是已经有的 , 所以 , 要加入以下的程序代码 :

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

Do

Worksheets("Summary").Range("I3").Select
ActiveCell.End(xlDown).Select
LastRec2 = ActiveCell.Row

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

当计算机在 SUMMARY 页面的储存格 I3 向下找 , 找到最后一个记录的位置后 , 就把数值储放于变量 LastRec2 内 , 注意 , 这个是 2 , LastRec2 , 不是 LastRec !!

之后就跟之前做的一样 , 要计算机去把合适的位置中的数据找出来 , 最后一个已处理的记录再加 1 就是我们要的位置 , 所以加入以下的程序代码 , 就可以找到对应位置中记录了的 REF # 的号码 :

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

Worksheets("Summary").Range("A" & LastRec2 + 1).Select

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

不用解释了吧 ~ LastRec2 + 1 的位置就是要处理的记录的位置 ~ 很简单嘛 ~ 之后又再一次用之前的方法 , 利用变量 TempRec 来记录找出来的值 ~

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

TempRec = ActiveCell.Value

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

再之后又是跟之前的一样 , 这里加些什么 , 那里又加些什么的 , 全部复制过来就好 ~

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

Worksheets("Invoice").Select
Worksheets("Invoice").Range("A2").Value = ""
Worksheets("Invoice").Range("G6:G15").Value = ""
Worksheets("Invoice").Range("A2").Value = TempRec

ActiveSheet.PrintOut from:=1, To:=1, copies:=1

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

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

Ref2TTL = LastShowing - 5

Worksheets("Summary").Select

Counter = LastRec2 + 1

For LoopCount = 1 To Ref2TTL

Worksheets("Summary").Range("I" & Counter).Value = "Y"
Worksheets("Summary").Range("J" & Counter).Formula = "=today()"
Worksheets("Summary").Range("J" & Counter).Value = Worksheets("Summary").Range("J" & Counter).Value

Counter = Counter + 1

Next LoopCount

Loop Until Counter = LastRec + 1

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

这里跟之前所不同的地方是 , 今次 DO ~ LOOP UNTIL ~ 所完成并停止程序的条件跟之前的不同 , 是要变量 COUNTER 的值跟变量 LASTREC 的值加 1 相等才可以停止 ~ 如果你还未知道为什么条件会这样设定 , 不要紧的 , 慢慢地想清楚 , 之前在寻找最后一个记录的位置时 , 我们利用了变量 LASTREC 来记录这个位置 , 然后 , 当程序开始运作后 , 程序在每一次完成增加数据到 SUMMARY 页面的 “ 已打印 ” 和 “ 打印日期 ” 后 , 都会把 COUNTER 的值更改成 COUNTER 的值加 1 .

如果程序开始时 , 变量 LASTREC 的值是 10 , 当程序完成这个记录的处理 , 并在 “ 已打印 ” 和 “ 打印日期 ” 的位置加上数据后 , 变量 COUNTER 的值就会变成 COUNTER 的值加 1 , 如果当时变量 COUNTER 的值是 10 , 那么完成这个处理后 , 变量 COUNTER 的值就会是 11 不是 10 , 如果按照我们之前做的第一次执行程序的停止条件来设定 , 那么 , 不管是 10 年后或者是 100 年后甚至更远 , 变量 COUNTER 所记录的值都只会是越来越大 , 变量 LASTREC 的又只会停留在 10 , 两个数值根本没可能相同 , 结果就是 , 程序只会不停地执行而不会停止 .

好了 , 现在来说明一下 , 为什么之前在设定变量 COUNTER 时 , COUNTER 的值要设定为 0 , 如果你有细心地想一想 , 你应该会明白到 , 这个变量 COUNTER 的值不可能跟之前 “ 第一次执行 ” 时的设定一样 , 因为我们根本不知道变量 COUNTER 应该是什么 , 所以设定为 0 就可以了 ~

如果你有程序编写的经验 , 可能你又已经发现 , Counter = 0 这句程序代码基本上是没什么意思的 , 因为 Counter = LastRec2 + 1 这句程序代码才是重点 , 不过 , 在于我的个人立场和习惯 , Counter = 0 这句程序代码可以让我在看程序代码的时候 , 会更加清楚所有变量的变化 , 对程序的执行速度又没有影响 , 所以就加了这样的一句了 .

嗯 … 又太长了 … 下一编继续 ~

0 留言:

最新回應

Loading...

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


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