用vba实现将记录集输出到Excel模板

2023-12-05 0 777

复制代码 代码如下:\’************************************************ \’**函数名称:ExportTempletToExcel \’**函数功能:将记录集输出到Excel模板 \’**参数说明: \’**strExcelFile要保存的Excel文件 \’**strSQL查询语句,就是要导出哪些内容 \’**strSheetName工作表名称 \’**adoConn已经打开的数据库连接 \’**函数返回: \’**Boolean类型 \’**True成功导出模板 \’**False失败 \’**参考实例: \’**CallExportTempletToExcel(c:\\\\text.xls,查询语句,工作表1,adoConn) \’************************************************ PrivateFunctionExportTempletToExcel(ByValstrExcelFileAsString,_ ByValstrSQLAsString,_ ByValstrSheetNameAsString,_ ByValadoConnAsObject)AsBoolean DimadoRtAsObject DimlngRecordCountAsLong\’记录数 DimintFieldCountAsInteger\’字段数 DimstrFieldsAsString\’所有字段名 DimiAsInteger DimexlApplicationAsObject\’Excel实例 DimexlBookAsObject\’Excel工作区 DimexlSheetAsObject\’Excel当前要操作的工作表 OnErrorGoToLocalErr Me.MousePointer=vbHourglass \’//创建ADO记录集对象 SetadoRt=CreateObject(ADODB.Recordset) WithadoRt .ActiveConnection=adoConn .CursorLocation=3\’adUseClient .CursorType=3\’adOpenStatic .LockType=1\’adLockReadOnly .Source=strSQL .Open If.EOFAnd.BOFThen ExportTempletToExcel=False Else \’//取得记录总数,+1是表示还有一行字段名名称信息 lngRecordCount=.RecordCount+1 intFieldCount=.Fields.Count-1 Fori=0TointFieldCount \’//生成字段名信息(vbTab在Excel里表示每个单元格之间的间隔) strFields=strFields&.Fields(i).Name&vbTab Next \’//去掉最后一个vbTab制表符 strFields=Left$(strFields,Len(strFields)-Len(vbTab)) \’//创建Excel实例 SetexlApplication=CreateObject(Excel.Application) \’//增加一个工作区 SetexlBook=exlApplication.Workbooks.Add \’//设置当前工作区为第一个工作表(默认会有3个) SetexlSheet=exlBook.Worksheets(1) \’//将第一个工作表改成指定的名称 exlSheet.Name=strSheetName \’//清除“剪切板” Clipboard.Clear \’//将字段名称复制到“剪切板” Clipboard.SetTextstrFields \’//选中A1单元格 exlSheet.Range(A1).Select \’//粘贴字段名称 exlSheet.Paste \’//从A2开始复制记录集 exlSheet.Range(A2).CopyFromRecordsetadoRt \’//增加一个命名范围,作用是在导入时所需的范围 exlApplication.Names.AddstrSheetName,=&strSheetName&!$A$1:$&_ uGetColName(intFieldCount+1)&$&lngRecordCount \’//保存Excel文件 exlBook.SaveAsstrExcelFile \’//退出Excel实例 exlApplication.Quit ExportTempletToExcel=True EndIf \’adStateOpen=1 If.State=1Then .Close EndIf EndWith LocalErr: \’********************************************* \’**释放所有对象 \’********************************************* SetexlSheet=Nothing SetexlBook=Nothing SetexlApplication=Nothing SetadoRt=Nothing \’********************************************* IfErr.Number<>0Then Err.Clear EndIf Me.MousePointer=vbDefault EndFunction \’//取得列名 PrivateFunctionuGetColName(ByValintNumAsInteger)AsString DimstrColNamesAsString DimstrReturnAsString \’//通常字段数不会太多,所以到26*3目前已经够了。 strColNames=A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,&_ AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,&_ BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ strReturn=Split(strColNames,,)(intNum-1) uGetColName=strReturn EndFunction

您可能感兴趣的文章:

  • VBA中操作Excel常用方法总结
  • Excel VBA连接并操作Oracle
  • excel vba 高亮显示当前行代码
  • excel vba 限制工作表的滚动区域代码
  • 合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
  • Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
  • python requests包的request()函数中的参数-params和data的区别介绍
  • python:解析requests返回的response(json格式)说明
  • 基于python requests selenium爬取excel vba过程解析

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 VBA 用vba实现将记录集输出到Excel模板 https://www.u-9.cn/jiaoben/vba/100779.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务