~ 上傳‧分享‧網賺 ~
~ 免費上傳空間‧請即申請 Freak Share ~
~ 進入後請點選左上角 注冊 ! ~
~ 声明事项 ~
如各位想把以下本文章转贴 , 请记得要注明出处.
本文章之内容为本人之经验所写, 绝无抄袭成份, 特此声明.
由于图片制作需时, 所以更新会比较慢.
存放图片的 SHARE A PIC SERVER 可能读取速度较慢, 请耐心等待.
真的没骗排版哦 ~ 哈哈 ~ ( 多骗一句不碍事吧 ~ 哈哈哈 ~ 闪 ~~~~~ )
现在开始再说一下 , 余下的记录要处理的地方吧 ~ 其实只不过又是那一些什么地方又加些什么 “ Y ” 字作记号 , 什么什么又加这个减那个的 , 所以这一编就不如直接把整个第一次执行程序时的模块贴出来吧 ~
==========================================
Sub FirstTimeUse()
'设定第一个记录位置为 4
FirstRec = 4
'选择 SUMMARY 页面的储存格 B3 , 利用 ActiveCell.End(xlDown).Select 向下寻找最后一个记录
'利用变量 LASTREC 记录目标位置
Worksheets("Summary").Select
Worksheets("Summary").Range("B3").Select
ActiveCell.End(xlDown).Select
LastRec = ActiveCell.Row
'选择 INVOICE 页面 , 清空储存格 G6 到 G15 的值 , 把储存格 A2 的值更改为 1
Worksheets("Invoice").Select
Worksheets("Invoice").Range("A2").Select
Worksheets("Invoice").Range("G6:G15").Value = ""
Worksheets("Invoice").Range("A2").Value = 1
'打印 1 次
ActiveSheet.PrintOut from:=1, To:=1, copies:=1
'利用变量 CHECKAREA 设定重复工作次数由 6 到 15
'储存格位置利用 CHECKAREA 变量的值自动变更
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
'选择 INVOICE 页面的储存格 G16 , 利用 ActiveCell.End(xlUp).Select 向上寻找最后一个记录
Worksheets("Invoice").Range("G16").Select
ActiveCell.End(xlUp).Select
LastShowing = ActiveCell.Row
'利用变量 REF2TTL 计算 每一个 REF # 中所包含的 REF 2# 的数量
Ref2TTL = LastShowing - 5
'选择 SUMMARY 页面
Worksheets("Summary").Select
'设定变量 COUNTER 的值为 4
Counter = 4
'利用变量 LOOPCOUNT 设定重复工作次数由 1 到 变量 REF2TTL 的值
For LoopCount = 1 To Ref2TTL
'变更 SUMMARY 页面 I 及 J 适当储存格的值
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
Counter = Counter + 1
Next LoopCount
'重复工作设定
Do
'选择 SUMMARY 页面 A 行的对应位置
Worksheets("Summary").Range("A" & Counter).Select
'利用变量 TEMPREC 记录现时所选择的储存格所记录的值
TempRec = ActiveCell.Value
'选择 INVOICE 页面 , 清空储存格 G6 到 G15 的值 ,
'变更 INVOICE 页面储存格 A2 的值为变量 TEMPREC 的值
Worksheets("Invoice").Select
Worksheets("Invoice").Range("G6:G15").Value = ""
Worksheets("Invoice").Range("A2").Value = TempRec
'打印 1 次
ActiveSheet.PrintOut from:=1, To:=1, copies:=1
'利用变量 CHECKAREA 设定重复工作次数由 6 到 15
'储存格位置利用 CHECKAREA 变量的值自动变更
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
'选择 INVOICE 页面的储存格 G16 , 利用 ActiveCell.End(xlUp).Select 向上寻找最后一个记录
Worksheets("Invoice").Range("G16").Select
ActiveCell.End(xlUp).Select
LastShowing = ActiveCell.Row
'利用变量 REF2TTL 计算 每一个 REF # 中所包含的 REF 2# 的数量
Ref2TTL = LastShowing - 5
'选择 SUMMARY 页面
Worksheets("Summary").Select
'利用变量 LOOPCOUNT 设定重复工作次数由 1 到 变量 REF2TTL 的值
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
Counter = Counter + 1
Next LoopCount
'选择 SUMMARY 页面储存格 I3 , 利用 ActiveCell.End(xlDown).Select 向下寻找最后一个记录
'变更变量 FIRSTREC 的值为 I 行最后一个记录的位置
Worksheets("Summary").Range("I3").Select
ActiveCell.End(xlDown).Select
FirstRec = ActiveCell.Row
'如果变量 FIRSTREC 的值与变量 LASTREC 的值相等便停止运作 , 否则重复 DO 到 LOOP UNTIL 中间的所有步骤
Loop Until FirstRec = LastRec
End Sub
==========================================
哗 ~ 会不会长了点 …
好吧 ~ 不管了 ~ 继续写 , 因为下一编要开始讲解一下 , 程序在第二次执行时的模块编写问题 ~ 嗯 … 继续 ~
如果你有细心地留意 , 其实在后半段的程序代码大部份都只是上半段的复制品 , 只不过是方在一个 DO ~ LOOP UNTIL ~ 的中间罢了 , 里面的东西就不作详细解释了 , 留给你慢慢地细心地去想一下程序的运作原理 .
现在先讲解一下关于 DO ~ LOOP UNTIL ~ 这个东西 , DO ~ LOOP UNTIL ~ 顾名思义就是 “ 做 … ( 某一段程序代码 ) … 直到 … ( 条件成立 ) … ” , 这东西很有用的 , 记得多点练习这个 ~
另外值得特别注意的是 LOOP UNTIL 的条件设定 , FirstRec = LastRec 中的 LastRec 就是在程序最初时 , 在 SUMMARY 页面的行 B 找出来的最后一个数据 , 那 FirstRec 的值是什么呢 ? FirstRec 这个变量的值 , 在程序开始时已经设定为 4 了~
==========================================
'设定第一个记录位置为 4
FirstRec = 4
==========================================
然后 , 在程序执行到结尾的时候 ( 即 LOOP UNTIL 语句之前 ) , 我要求计算机去做一件事来把变量 FirstRec 的值更新一下 ( 嗯 … 好像没跟你讲过变量FirstRec 是代表着什么吧 ~ 就是要处理的第一个记录的位置了 ~ 之前设定为 4 是因为第一个记录是 SUMMARY 页面的第 4 列 ~ )
==========================================
'选择 SUMMARY 页面储存格 I3 , 利用 ActiveCell.End(xlDown).Select 向下寻找最后一个记录
'变更变量 FIRSTREC 的值为 I 行最后一个记录的位置
Worksheets("Summary").Range("I3").Select
ActiveCell.End(xlDown).Select
FirstRec = ActiveCell.Row
==========================================
执行完这几句程序代码之后 , 变量 FirstRec 的值就顺利变更了 ~ 当变量FirstRec 的值与变量 LastRec 的值相同 , 就可以完成工作 , 嗯 , 这句不用解释了吧 ~
好 ~ 这一回就先到这里 , 下一回就开始编写 “ 程序在第二次执行时的程序代码 ”
记得跟我打个招呼哦 ~ 否则我只是在自言自语的话 , 我可能会把心一横 , 就把这个站关了 ~ 哈哈 ~
0 留言:
發佈留言