所有文章均来自网络(除测试总结部分),如果涉及到版权问题请与我联系,我会及时删除~~~~

直接调用Excel中的函数的方法(转贴)

上一篇 / 下一篇  2007-01-19 08:36:29

O/bvMH _0直接调用Excel中的函数的方法,示例如下:
"B[+e'd] b2x$v}0[Copy to clipboard]
E1|F:~l G0CODE:51Testing软件测试网_8s-l9~"M2r*E
close;
2Y+A+d ~.Knh.C0<%
l d'M2cx0Set ōExcel= CreateObject("excel.application")51Testing软件测试网` o"Z_/ZO)KA
oExcel.Visible = True  'Excel是否可视,若赋值为True则可视,但速度会慢得多51Testing软件测试网nf4D0n8q:zX1H
oExcel.Workbooks.Add
q+a?U8bFzo0Set ōSheet = oExcel.Workbooks(1).Worksheets("sheet1")51Testing软件测试网L|_.Ww:E
oSheet.Activate
9u#BO8Gye7s0  oSheet.Cells(1, 1) = 1
8A!fU.qvD6z R0  oSheet.Cells(1, 2) = 2
|{DqZ(b$mTZ0  oSheet.Cells(1, 3) = "=SUM(A1:B1)"51Testing软件测试网O-]j/b8L|a
  oSheet.Cells(1, 4) = "=AVERAGE(A1:B1)"51Testing软件测试网8Y}kf F#]/y
Set ōExcel = Nothing
xPhy,cS2rvP0%>
B"d8Z2z)Q6Z3K%F!K!Z0VBS控制Excel的一些常见方法:51Testing软件测试网W c!k&AhkJk4k~
(一) 使用动态创建的方法

S[ Vr-Z?7l:?8{ r051Testing软件测试网Z}S)dJ0\

首先创建 Excel 对象,使用ComObj:51Testing软件测试网6i!NLl7Om J^/~f

LR4b3Jj0oExcel = CreateObject( "Excel.Application" )

sQK-~8K6|051Testing软件测试网I|tf&AH|N8dA

1) 显示当前窗口:51Testing软件测试网6y4F%hU(]rNDl
oExcel.Visible = True51Testing软件测试网,I7t(dC'lJ;uD

51Testing软件测试网7a)CKh0AM |&Ist

2) 更改 Excel 标题栏:
;K%m9yt&]+y`D0oExcel.Caption = "应用程序调用 Microsoft Excel"51Testing软件测试网U4X hQtLf+d

51Testing软件测试网GU i)M j(]ILDA

3) 添加新工作簿:
/r.r4e4k9D wRC,P0oExcel.WorkBo感谢对我们的支持~s.Add

3qu3{"kR M*f051Testing软件测试网3W_J#q Z$[2C)vxe}_

4) 打开已存在的工作簿:
&O2rr B6_0oExcel.WorkBo感谢对我们的支持~s.Open( "C:\Excel\Demo.xls" )51Testing软件测试网pJ{X_w

51Testing软件测试网 D0h5|A)G#L c`

5) 设置第2个工作表为活动工作表:
2q,rd*H(ito0oExcel.WorkSheets(2).Activate
V u2b7e1^(S;Ji/g2j051Testing软件测试网\w6BvY+`@
oExcel.WorksSheets( "Sheet2" ).Activate

#r4vD"vZ0

X2R'M)R{x6\l3]`06) 给单元格赋值:51Testing软件测试网N-X ix5gF
oExcel.Cells(1,4).Value = "第一行第四列"

yML0lt3^*N E,{F051Testing软件测试网Vb3KN.t!L

7) 设置指定列的宽度(单位:字符个数),以第一列为例:51Testing软件测试网 Ks Of|;nSG(uT s
oExcel.ActiveSheet.Columns(1).ColumnsWidth = 5

q%v gA9k*o:qG0

|(LU0F(E1Y,`M08) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
,?b DN&v+l ~"n0oExcel.ActiveSheet.Rows(2).RowHeight = 1/0.035 ' 1厘米

l s1Y D6s+f051Testing软件测试网 Xx6{`t~

9) 在第8行之前插入分页符:51Testing软件测试网 vVT Z&lNa
oExcel.WorkSheets(1).Rows(8).PageBreak = 151Testing软件测试网4}U o"]l ]H1o6T.s

51Testing软件测试网j*a#iQ k!Br-^

10) 在第8列之前删除分页符:51Testing软件测试网2B$a:\f o9j
oExcel.ActiveSheet.Columns(4).PageBreak = 051Testing软件测试网9b!R?$Xg~!@ A~+u

J@ i3F1} g;g!nP011) 指定边框线宽度:51Testing软件测试网vqU-x3^+Z/df
oExcel.ActiveSheet.Range( "B3:D4" ).Borders(2).Weight = 351Testing软件测试网 ga1`Ol*W4ezQ[
1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )

T2aph&NF0

5G bmC(tS]G012) 清除第一行第四列单元格公式:51Testing软件测试网:dT#\H z:CPt S
oExcel.ActiveSheet.Cells(1,4).ClearContents

]^TB gtU051Testing软件测试网 et#H)z&j D7]W p

13) 设置第一行字体属性:51Testing软件测试网(cl]Ok$u
oExcel.ActiveSheet.Rows(1).Font.Name = "隶书"51Testing软件测试网"u(RE|\,|
oExcel.ActiveSheet.Rows(1).Font.Color = clBlue51Testing软件测试网\/y!rdM:fe c&}*C
oExcel.ActiveSheet.Rows(1).Font.Bold = True51Testing软件测试网%f#K-k"].~ S'{
oExcel.ActiveSheet.Rows(1).Font.UnderLine = True51Testing软件测试网SK^L5n

3i S}.[!A G4Df014) 进行页面设置:51Testing软件测试网 Y{tPG

51Testing软件测试网Q9kKr-ug]

a.页眉:
o%L7wa`D'[(T0oExcel.ActiveSheet.PageSetup.CenterHeader = "报表演示"
!aYUl6X'hK qG0b.页脚:
0P n]1PD} G0oExcel.ActiveSheet.PageSetup.CenterFooter = "第&P页"
wb:p~d"n$K0c.页眉到顶端边距2cm:51Testing软件测试网-ckqPZ0E[
oExcel.ActiveSheet.PageSetup.HeaderMargin = 2/0.03551Testing软件测试网a*T_IF(?Zq
d.页脚到底端边距3cm:
`t&W+?2O0oExcel.ActiveSheet.PageSetup.HeaderMargin = 3/0.035
x:zo&dz4j7}0e.顶边距2cm:
ewE F K C6s0oExcel.ActiveSheet.PageSetup.TopMargin = 2/0.03551Testing软件测试网Dq\&LOd'y$hO'H"@
f.底边距2cm:
E5N3A.[O"L:io4E!\0oExcel.ActiveSheet.PageSetup.BottomMargin = 2/0.03551Testing软件测试网3c2\%URcl&L3v
g.左边距2cm:
rJ&Z4yW(l&X;q/F.yk ~#m0oExcel.ActiveSheet.PageSetup.LeftMargin = 2/0.03551Testing软件测试网6@+_/A,rf4DmM
h.右边距2cm:51Testing软件测试网 [)V%x8Sos2QJ*n
oExcel.ActiveSheet.PageSetup.RightMargin = 2/0.03551Testing软件测试网U.A!l4S1fp^
i.页面水平居中:51Testing软件测试网9C L,K#aD
oExcel.ActiveSheet.PageSetup.CenterHorizontally = 2/0.035
&|{-}3st g0j.页面垂直居中:51Testing软件测试网h:x+X.hY{%G`
oExcel.ActiveSheet.PageSetup.CenterVertically = 2/0.035
!E^([6YFw Zdf0k.打印单元格网线:51Testing软件测试网U@Gl%R0\vEz
oExcel.ActiveSheet.PageSetup.PrintGridLines = True51Testing软件测试网/a{*a\Yv6A$`M

2E-Eq/v4D#K015) 拷贝操作:51Testing软件测试网9K)^%XB5o3Z!gJ0m5q

'}`#In}7YB0a.拷贝整个工作表:51Testing软件测试网J.F)oL]hb4GJ
oExcel.ActiveSheet.Used.Range.Copy
(t;| y }:_0b.拷贝指定区域:51Testing软件测试网h&Xj~9Mvm
oExcel.ActiveSheet.Range( "A1:E2" ).Copy51Testing软件测试网 ydp,|O`qc0P
c.从A1位置开始粘贴:
m/G#M#fnLM @0oExcel.ActiveSheet.Range.( "A1" ).PasteSpecial
G)z1{#? O ce3m0d.从文件尾部开始粘贴:51Testing软件测试网W7Q l&w1S\!Z%x
oExcel.ActiveSheet.Range.PasteSpecial

1i4JM:ki us051Testing软件测试网0bmm+G[:V+r

16) 插入一行或一列:
a&aM(_/b5`0a. oExcel.ActiveSheet.Rows(2).Insert
p gGR5E*E0b. oExcel.ActiveSheet.Columns(1).Insert51Testing软件测试网Aj-rC&Y P}

51Testing软件测试网L:`~"cb.T}5e

17) 删除一行或一列:51Testing软件测试网l9Sl.s*aO'PH
a. oExcel.ActiveSheet.Rows(2).Delete51Testing软件测试网Y1|'`GDe^3z&u
b. oExcel.ActiveSheet.Columns(1).Delete

}(@A M2e0r-W_1I0

q&Tcvg!_3|9G)X%z018) 打印预览工作表:
Q~[-K[*RyoB%D0oExcel.ActiveSheet.PrintPreview51Testing软件测试网 { E}&C']|+f

51Testing软件测试网'Y/Q2Rl B-L V[uL

19) 打印输出工作表:
thXc?Q0oExcel.ActiveSheet.PrintOut

}R'V/NIGx{J(x0

+o/X rQnH{%h]4W020) 工作表保存:
F Cy q {,MfE'}0if not oExcel.ActiveWorkBo感谢对我们的支持~.Saved then51Testing软件测试网 dE F@WMgN:T,?3[ q
oExcel.ActiveSheet.PrintPreview

9s {"y!JE[_i5~&vi051Testing软件测试网1W9K tv Q x]6b

21) 工作表另存为:
$YTM mgD'?*ocU0oExcel.SaveAs( "C:\Excel\Demo1.xls" )51Testing软件测试网 _ ?N_Q;L)b3v

51Testing软件测试网a9uwqK6F+[p+f

22) 放弃存盘:
Vq4\l'Wf o0oExcel.ActiveWorkBo感谢对我们的支持~.Saved = True51Testing软件测试网7}9f0l lUY%A5U `

?B5I[~#S!jj!|023) 关闭工作簿:
H$EZ K ao3^0oExcel.WorkBo感谢对我们的支持~s.Close51Testing软件测试网D_ I Ua}:E8]&S

51Testing软件测试网`z#V,}Z!Ad[

24) 退出 Excel:51Testing软件测试网 n2eI*w#x$v
oExcel.Quit

'D2@j8[ CrN3c }F0

^|q+{o_H0(二) 使用VBS 控制Excle二维图51Testing软件测试网 UL%J0p?KJ

R%JC6TCc G-YzX01)选择当第一个工作薄第一个工作表51Testing软件测试网-I1s+a'mLKa
set ōSheet=oExcel.Workbo感谢对我们的支持~s(1).Worksheets(1)

0o8Wu:k)ar nEI051Testing软件测试网:n,^t,kQ

2)增加一个二维图
;f };b v)`.R0achart=oSheet.chartobjects.add(100,100,200,200)

"Z@#|J0x!Z4F)j@051Testing软件测试网XxxpLV ?k7n

3)选择二维图的形态
F9rU8_%ME0achart.chart.charttype=4

1rc r U/w1?9qY0

:n+De'mE@04)给二维图赋值
,Qno&b1B B0set series=achart.chart.seriescollection51Testing软件测试网8[t(QMLFC_
range="sheet1!r2c3:r3c9"
aWRjQ7wj} ut0series.add range,true51Testing软件测试网)r#\Q6z8T$}jyY;V

51Testing软件测试网C.GDWy[V.v9M]^7U:z

5)加上二维图的标题
Z] KXh.]$R0achart.Chart.HasTitle=True
i+j-x&DLem0achart.Chart.ChartTitle.Characters.Text=" Excle二维图"51Testing软件测试网[*x l s1[&L4m'D

51Testing软件测试网H5q9[Nu2s{

6)改变二维图的标题字体大小51Testing软件测试网S3{Dv+XD1h'w3h
achart.Chart.ChartTitle.Font.size=18

"G^x(z m"Ci0G0{0

YtM$jbp:i!| BN07)给二维图加下标说明
0{G;EDl'P3mGE0achart.Chart.Axes(xlCategory, xlPrimary).HasTitle = True51Testing软件测试网 r v w tG|/B+y7O v
achart.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "下标说明"51Testing软件测试网(~"W%`Bm

;j Eb {9V%K]08)给二维图加左标说明
7H(ys*xzrl|+QU0achart.Chart.Axes(xlValue, xlPrimary).HasTitle = True
%~ X\3qM0achart.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "左标说明"

;D7_ El-E051Testing软件测试网#I9T'cGb K0gq#T

9)给二维图加右标说明
k L*[`5Fv,K%d8e.@*b0achart.Chart.Axes(xlValue, xlSecondary).HasTitle = True
qsIe P1b?]y0achart.Chart.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = "右标说明"51Testing软件测试网p(@J+Z zg@|

51Testing软件测试网 yE(o-@i)d5N"L/L*B

10)改变二维图的显示区大小
!Ew0tH9EF@,~ H0achart.Chart.PlotArea.Left = 551Testing软件测试网N!K}C-L0b j
achart.Chart.PlotArea.Width = 223
C,wF6Pn|JD j0achart.Chart.PlotArea.Height = 108

o8F!m"NVN051Testing软件测试网.X~[ ]I

 51Testing软件测试网M^V!` Dd u'M


TAG: 其它相关

 

评分:0

我来说两句

日历

« 2024-04-10  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 43572
  • 日志数: 61
  • 建立时间: 2007-01-15
  • 更新时间: 2007-07-23

RSS订阅

Open Toolbar