




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VBA入门范例精解Excel培训VBA操作数据库实例范例简介在本次学习之前,各人要对VBA编程基础有一定程度的了解、学习。
在后面的实例中,我们将可以学习VBA程序对SQLServer数据库的简单操作,对Excel中的表格进行边框、背景颜色、文字大小、文字类型、文字格式等等一系列的设置更改。Excel培训VBA操作数据库实例引用类引用一个连接数据库的类Excel培训VBA操作数据库实例主过程SubMain()unifySheets("X-SELL"),_"SELECT*FROM[AO_CN].[hcc_risk].[V_CASH_CX]ORDERBYPROD_CODE",_"D,E,F,H,K,M,N,O,P,Q,R,S,T,U,V,W,X",_"L"
ThisWorkbook.Save
EndSub注意:通常在我们编写程序时,主程序应越简单越好,这样不仅自己容易维护、应用,而且能使其它用户易读懂。注释:在过程main()中,调用子过程unify,并向unify中传递四个参数;再调用VBA内部过程Thisworkbook.Save保存电子表格(执行完成如下:)。Excel培训VBA操作数据库实例PrivateSubunify(ByValshtAsWorksheet,_ByValstrSqlAsString,_ByValstrPercentColumnsAsString,_ByValstrDecimalColumnsAsString)
clearShtshtFillDatasht,strSqllineJinshtcolorSheetshtpercentJinsht,strPercentColumns,"0.00%"percentJinsht,strDecimalColumns,"0.00"FontSheetsht,"Calibri",10Columns("A:Z").AutoFit
EndSub整合子过程片段注释:定义私有过程unify,并定义四个参数sht、strSql、strPercentColums、strDecimalColumns。调用子过程clearSht、FillData、lineJin、colorSheet、percentJin、percentJin、FontSheet、Columns。由于需要向子过程片段中传递一些相同的参数,并且每次都要执行些子过程,那么我们在编程时可以整合它们在一起,减少编译次数,节省执行时间。Excel培训VBA操作数据库实例PrivateFunctiongetRowCount(ByValshtAsWorksheet)AsLongDimlRowsNumAsLongDimiAsLong
Fori=3To65535Ifsht.Cells(i,1).Value=""ThenlRowsNum=i-1ExitForEndIfNext
getRowCount=lRowsNum
EndFunction记录表格中的数据行数注释:这里i定义为表格的行号,列号1(A)不变,从第三行开始循环一直到65535行,如果Ai中的值为空就会跳出循环,那么行数:getRowCount=i-1Ai=“”?i否i+1RowCount=i-1是Excel培训VBA操作数据库实例记录表格中的数据列数PrivateFunctiongetColumnCount(ByValshtAsWorksheet)AsLongDimlColumnsNumAsLongDimiAsInteger
Fori=1To255Ifsht.Cells(2,i).Value=""ThenlColumnsNum=i-1ExitForEndIfNext
getColumnCount=lColumnsNumEndFunction注释:这里i定义为表格的列号,行号2不变,从第一列开始循环一直到255列,如果i2中的值为空就会跳出循环,那么列数:getColumnCount=i-1Excel培训VBA操作数据库实例清除表格中记录PrivateSubclearSht(ByValshtAsWorksheet)
DimcolumnChrAsStringcolumnChr=Split(Cells(1,getColumnCount(sht)).Address,"$")(1)
DimrowCntAsLongrowCnt=getRowCount(sht)
sht.Range("A3:"&columnChr&rowCnt+5).Clear
EndSub注释:调函数获取列号(由数字转换成字母)获取行数调用VBA内部过程指定范围并清除数据清除范围内的数据(包括格式、文字、字体、背景色、边框等等)Excel培训VBA操作数据库实例SubFillData(ByValshtAsWorksheet,_ ByValSqlAsString)DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimCnStrAsString
CnStr=“Provider=SQLOLEDB;”_ &“DataSource=;”_ &“IntegratedSecurity=SSPI"conn.OpenCnStrmandTimeout=500rs.OpenSql,conn,1
sht.[A3].CopyFromRecordsetrsrs.Closeconn.CloseSetconn=NothingEndSub操作SQLServer数据库注释:定义过程FillData;定义变量conn、rs、CnStr给数据库连接串赋值打开数据库连接最大连接时间500s查询并读取数据到rs复制rs中的数据并在表sht的A3位置填充(如下图:)关闭rs,conn释放连接conn在内存中所占的空间Excel培训VBA操作数据库实例PrivateSublineJin(ByValshtAsWorksheet)‘添加边框DimrngAsRangeDimstrTempAsStringDimiAsInteger
sht.ActivatestrTemp=Split(Cells(1,getColumnCount(sht)).Address,"$")(1)&getRowCount(sht)Setrng=sht.Range("A3:"&strTemp)
rng.Select ‘选中需要边框的范围
Fori=7To12Step1WithSelection.Borders(i).LineStyle=xlContinuous.ColorIndex=0.TintAndShade=0.Weight=xlThinEndWithNextiSetrng=Nothing
EndSubi=7添加左边框i=8添加顶边框i=9添加底边框i=10添加右边框i=11添加内垂直线i=12添加内水平线添加边框Excel培训VBA操作数据库实例填充背景色PrivateSubcolorSheet(ByValshtAsWorksheet)DimcolumnChrAsStringcolumnChr=Split(Cells(1,getColumnCount(sht)).Address,"$")(1)
DimiAsLongDimrowCntAsLongrowCnt=getRowCount(sht)Fori=3TorowCntIfiMod2=0Thensht.Range("A"&i&":"&columnChr&i).Interior.Color=RGB(240,246,206)EndIfNext
EndSub注释:填充背景色。色彩由RGB红、绿、蓝三色配比而成,单色的最大值是255。在此实例中为隔行填充颜色,如下:Excel培训VBA操作数据库实例修改字体PrivateSubFontSheet(ByValshtAsWorksheet,_ByValfontStyleAsString,
ByValfontSizeAsInteger)DimcolumnChrAsStringcolumnChr=Split(Cells(1,getColumnCount(sht)).Address,"$")(1)
DimrowCntAsLongrowCnt=getRowCount(sht)sht.Range(“A3:”&columnChr&rowCnt).Select
‘选择范围
WithSelection.Font.Name=fontStyle ‘字体名称(传递参数).Size=fontSize ‘字体大小(传递参数).Strikethrough=False.Superscript=False.Subscript=False.OutlineFont=False.Shadow=False.Underline=xlUnderlineStyleNone.ThemeColor=xlThemeColorLight1.TintAndShade=0.ThemeFont=xlThemeFontNoneEndWith
EndSub在该实例中字体名为Calibri,大小为10。Excel培训VBA操作数据库实例修改文字格式PrivateSubpercentJin(ByValshtAsWorksheet,_ByValstrColumnsAsString,ByValstrFormatAsString)sht.Activate
DimlRowsCountAsLonglRowsCount=getRowCount(sht)
DimxAsVariantDimobjAsVariant
x=Split(strColumns,",")
ForEachobjInxsht.Range(obj&"3:"&obj&lRowsCount).Selectsht.Range(obj&lRowsCount).ActivateSelection.Style
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿拉善职业技术学院《汉语概说》2023-2024学年第一学期期末试卷
- 陇南师范高等专科学校《数字剪辑》2023-2024学年第二学期期末试卷
- 陕西交通职业技术学院《中外建筑史C》2023-2024学年第一学期期末试卷
- 陕西国际商贸学院《教育神经科学》2023-2024学年第二学期期末试卷
- 陕西工业职业技术学院《大学体育(三)》2023-2024学年第一学期期末试卷
- 陕西师范大学《生物饵料培养》2023-2024学年第二学期期末试卷
- 陕西服装工程学院《物理专业实验》2023-2024学年第二学期期末试卷
- 陕西省咸阳市兴平市2024-2025学年三下数学期末教学质量检测试题含解析
- 陕西省咸阳市重点中学2025届高三第二学期期末(一模)生物试题含解析
- 陕西省宝鸡市2025届高三下学期期末大联考化学试题含解析
- ICU非计划性拔管原因分析鱼骨图
- 2022-2023年棉花行业洞察报告PPT
- 精神科症状学演示课件
- 文学类文本聂志红《在那桃花盛开的地方》阅读练习与答案
- DB13T 5080-2019 SBS改性沥青生产过程动态质量监控规范
- 义务教育物理课程标准(2022年版word版)
- 2.抗美援朝课件(共25张PPT)
- 《CSS样式表的使用》教学设计
- 外环长安大道、东方大道段天然气管道工程管道试压吹扫方案资料(共13页)
- 中国花鸟画简史-共60页PPT课件
- 第四章_复合材料的界面
评论
0/150
提交评论