• 沒有找到結果。

据转化111门18矿将新增用户数的柱形图复和j 到 85单元格所在行的下方,图表数据会随原图表数据 的更新而更新。其他通报正文设置亦同此理,我就不再重复介绍 , 直接完成设置。

在文檔中 费留依照. (頁 189-196)

⑤可隐藏通报正文范围外无须用到的单元格区域,例如要隐藏1到及其以后的列

那么用鼠

标选中 1列,同时接下 [ Ctrl+Shift+ → ]

三个键,并单击鼠标右键,选中

[ 隐藏 ]

即可

同理

还可隐藏无须用到的行。

⑥如果希望隐藏行、列标题,可通过 [

文件

l

[

选项

1 → [

高级

1 ,找董IJ [ 显示行和列

标题1的复选框,去除勾选即可。

最终通报正文效果如图 4-10所示。

小白: 嗯 l 对通报正文进行这些设置,看上去就像Word制作的通报一样,很规范。 191

192

》 谁说菜鸟不会数据分析(工具篇)

4 . 2 . 3 数据提取自动化

Mr 林,接下来我们要做最重要的一件事,就是实现每天早上一键自动提取所需的通报数 击居 z 这就需要用到之前掌握的SOL与VBA知识啦。

小白: 具体要怎样实现呢?两者如何结合起来呢?

M r.林 首先有一个前提条件,就是数据库有固定的 IT人员进行维护,把每天产生的运营相 关的"用户明细 H 、 "订购明细"曰忘数据文件导入Access数据库中,然后我们只需每天打开 Access数据库查询所需要的数据。

我们可以把SOL语旬中查找的曰期条件,根据系统时间进行设置,假设今天日期为 "2011 9-5 日' 我们需要查询昨天(2011-9-4 )的数据, 那么可把SOL语旬的日期筛选条件写为

"WHERE 订购日期 <DATEQ AND订购曰期 >=DATEQ-1" ,可实现不用手工调整, 根据系统时 间自动取数的效果。

小白 Mr林, 周一的时候怎么办?周六、周曰非工作日,不需要做通报,周 做通报的时 候需要提取三天的数据。

Mr 林· 你这个问题很好,如果采用这种方式,就需要人工进行VBAì吾旬的调整,有点麻 烦,如果其他同事来接手,不熟悉VBA环境,就更麻烦。

所以还有另外一种思路,就是我们可设置输入日期功能,系统自行根据输入的日期,进行相 关数据查询与提取,这样我们想提取哪天的数据就提取哪天的数据。

小白· 嗯 l 随心所欲, 我喜欢。

Mr 林. 所以,实现从数据库取数,把数据结果追加至 Excel相应表中,需要用SOL与VBA语 旬, 主要实现以下几个功能。

食 打开Access数据库。

食 输入提取数据的日期。

食 运行指定的提数SOU吾句。

食 将SOLì吾旬运行的数据结果自动追加到Excel "数据源"表的新记录中。

相关的VBAì~句编写如下 Sub 每日数据提取。

VSA

Dim AdoConn As New ADODB.Connection

Co门 nec!ion

Dim MyData As String Dlm N

As

Integer Dim D1 As Date

Oim 02

As

Oate " ~ ',.';)2

SO

Oim strSOL 1

As

String Oim strSOL2 As String Oim strSOL3 As String Oim strSOL4 As String

ρutBox

第4章让报告自动化

01 = InputBox \,请输入需要提数的日期, 例如 2011-9-4", '提数日期呼 02 = 01

+

1

·取第3列第 1个空格单元格的行数,并赋值给N

N

=

ActiveSh田t. Range('C 1j

.E

nd(xIOown).Row

+

1

MyOata = ThisWorkbookPath & "\壳 1'Q.,:*.accdb"

With AdoConn

Provider

=

"Microso~,ACE , OLEDB,12,O"

Open MyOata End With

st

rS

OL1 = SELECT count(

Fli"

IO) FROM

#'& 01 & #

,'~ WHERE T~l J 百飞#& 02 & # ANO 汪l

strSOL2

=

'SELECT count( 用户 10)FROM (SELECT OISTINCT 忖户 10FROM iT啕明缅 WHERE

T ,

3

, < # & 02 & # ANO:J :~.J阁#'&01 & '的l

strSOL3

=

'SELECT count(订单编号) sum(~] 购金品)FROM ì丁W.l 明细 WHERE 订购日期<#.~

&02& '#ANO >J毗J 日j!j>二 #"&01& #

st

rS

OL4 = 'SELECT count( 南户 10)FROM (SELECT OISTINCT 用户 10 FROM 订购明细 WHERE 明明# &02 &"别

~iQl

193

》 谁说菜鸟不会数据分析(工具篇)

ActiveShee

t.

Cells(N

,

3).CopyFromRecordset AdoConn

,Ex

ecute(strSQL 1) ActiveShee

t.

Cells(N

,

4).CopyFromRecordset AdoConn

,Ex

ecute(strSQ L2) ActiveShee

t.

Cells(N, 5).CopyFromRecordset AdoConn.Execute(strSQL3) ActiveSheet.Cetls(N ηCopyFromRecordset AdoConn.

Ex

ecute(strSQL4)

AdoConn, Close

Set AdoConn ; Nothing

s口巳

MsgBox"数据提取完毕1"

End Sub

虽然之前 Mr 林已经给小白介绍了 VBA基础知识,但是小臼毕竟还没有真正入门,第一次见 到这么多陌生的VBA语旬, 顿时感到头晕 这些VBA语句都是什么意思呀?

Mr 林看到小自一脸茫然的样子,解释道:不要怕,小白i 我已经将相关解释都放在每块语 旬之前,你可以参考。 VBA语句执行的步骤,如图 4-17所示。

E lËs(lI!m!I!JM~~

EJliBJllËS(H!l!J3I:ti!ñlil{ft嗣 Eñ!l!lËACC"55U~!I!J~!l

E面 i!J . M!l!iiMflJExcel 嗣

四ioLJÆa ,酬,酬 . . .

图 4-17 每日数据提取VBA语句执行步骤

小白这时对 VBAì吾旬已经不再那么陌生·经您这么 说,我明白这些VBAì吾旬的大致情况 了,具体细节还要研究研究。还有个问题,我对 SQL语旬中赋值的语旬不是太明白,好多双引 号、井号 (n) 、连接待(&)等符号,都是什么意思呢?

194 Mr 林:好的,我分别做 下解释。

第4章让报告自动化

食 双引号之间的语句是VBAì吾旬中的文本字符串。

* 井号(# )主要在SOL查询i吾旬中表示数据类型为曰期型,通常在数据值两端加上井号 (#) ,这在讲Access数据库SOLì吾旬查询时就介绍过。

食 连接符(& )在VBAì吾句中, 用于连接各个文本字符串,以组成一串所需的字符串, 例 如VBA语句中的strSOL1 变量所赋值的 SOLì吾旬。因为需要根据输入的曰朗进行数据查询 提取, VBA语句中涉及文不字符串与曰期参数两种类型的文本。

》 谁说菜鸟不会数据分析(工具篇)

选择VBE菜单申

[

土具

]

[

引用

]

选项, 在弹出的

[

号|用]对话框中,查找并勾选

"Microsoft AcliveX Dala Objecls 2

,

8 Ubrary"

, 并单击

[

确定

]

按钮,如图4-2口所示。

E冉~.- 国l皿 -m;;"'J;I.1fl.ifiit 函'

2g 酣 1. c:r osofl~Ul. tCoø.tro120 1,,:rOloH ~Ul. tS IlT"'1lT2.O

筐窒 ω 百日也工睛 说明

1. c:r osofl~UI.息 Ser...rbt...sionJ:~

..-俑 ~Ar ,l~'An ,……T_.l 巾-..

,

I.aosoft .l.ct,...,z DahObJ.ch28 t..br町

定位 C \1roO' .1.1u也…ø. 1 <ln\Syst_\td.o飞..sedo15 ‘

C豆oc王o 通警 领噜

马- ZF"EW 写胃画 "咱 噜"‘;;;.;il隐寻 .~.IL"",,,,,I'I'.."'"树占扭,,"

... c lù.1冒险.okh~ ‘''''备U .lf ucA

8 9 10 11 12 13 14 15

-第4章让报告自动化

。1每日数据提取"宏效果如图4-22所示。

旦些J

16 15

图 4-22 每日数据提取"按钮设置效果示f9\J

@

数据自动化提取

Mr林·到此, 整个日报自动化设置工作就已完成。小白, 检验成果的时刻到来了,现在日 报自动化模板里只有截至2011年9月 3 日的数据,而我现在要提取2011 年9月 4 日的数据,你来单 击"每日数据提取"按钮吧!

小白双手合并来回搓了几下 那我就不客气啦1

rmP..o

j 单击"每日数据提取"按钮。

在弹出的 [提数日期]对话框中,根据对话框提示的曰期格式要求,输入 " 2011-9-4" ,单击[确定]按钮,如图4-23所示。

飞'1iii I~!

面恤λ帽蛐q 日翩翩 剧旧

I

IIÆ

I

lI!翌」

商iï+'i[

图 4-23 [I!数日期1对话框

Excel

自动运行相关VBAi吾旬,并将结果逐步追加至单元格C8:

G8处,单元格H8:J8的数

据也相应进行

累加计算,

运行完毕后弹出"数据提取完毕"提示框,单击

[

确定

]

按 钮, 即可完成2011年9月4日的数据提取工作, 直口图4-24所示。

小白惊讶地张着大嘴· 哇塞 I Mr林, 太方便啦! }$好棒啊! 197

》 谁说菜鸟不会数据分析(工具篇)

在文檔中 费留依照. (頁 189-196)