~ 上傳‧分享‧網賺 ~
~ 免費上傳空間‧請即申請 Freak Share ~
~ 進入後請點選左上角 注冊 ! ~
~ 声明事项 ~
如各位想把以下本文章转贴 , 请记得要注明出处.
本文章之内容为本人之经验所写, 绝无抄袭成份, 特此声明.
由于图片制作需时, 所以更新会比较慢.
存放图片的 SHARE A PIC SERVER 可能读取速度较慢, 请耐心等待.
现在开始要做的 , 就是程序在第一次执行时要做什么 , 首先要做的 , 是要知道有多少东西要做 , 所以 , 又要使用我们经常使用的程序代码 :
==========================================
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 留言:
發佈留言