Excel VBA |
您所在的位置:网站首页 › vba提取数据并批量打印文件 › Excel VBA |
1 Function MyOutPut(ByVal FileName As String, ByVal col As Integer, ByVal Row As Long, ByVal sheet As Worksheet)
2 '/********************************************/
3 '参数1 文件名
4 '参数2 结束列号
5 '参数3 起始行号
6 '参数4 工作表指针
7 '/********************************************/
8 '
9 '输出整理好的表格
10 Application.ScreenUpdating = False '关闭表格公式的自动刷新
11 'StartTime = Timer '记录开始运行时间
12 Dim endline As Long
13 Dim name As String
14 Dim myCol As Integer
15 Dim myRow As Long
16 Dim mySheet As Worksheet
17 name = FileName '获取传进来的文件名
18 myCol = col '获取传进来的结束列号
19 myRow = Row '获取传进来的起始行号
20 Set mySheet = sheet '获取传进来的工作表指针
21 endline = mySheet.Range("$A$1000000").End(xlUp).Row '如果工作表行数大于一百万,请修改这里的数值
22 MyPath = ThisWorkbook.Path '获取本文件目录
23
24 '创建新的工作簿
25 Set wb = Workbooks.Add
26 wb.Sheets(1).Range(Cells(1, 1), Cells(endline, myCol)).NumberFormatLocal = "@"
27 mySheet.Range(mySheet.Cells(myRow, 1), mySheet.Cells(endline, myCol)).Copy
28 wb.Sheets(1).Range(Cells(1, 1), Cells(endline, myCol)).PasteSpecial Paste:=xlPasteValues
29 30 '准备输出
31 MyFullName = MyPath & "\" & name & ".xlsx" '自动生成文件名称
32 ActiveWorkbook.SaveAs FileName:=MyFullName, FileFormat:=xlWorkbookDefault, CreateBackup:=False '保存,FileFormat 为下面列表中的指定格式,这里默认为xlsx
33 ActiveWorkbook.Close '关闭新生成的工作簿
34 End Function
(2022-02-08更新) 最近忙于整理数据并输出,特此将常用的核心代码分享出来,供有需要的人调用。 以上为我自己封装的Excel表格输出函数,直接放到自己的工作簿或者模块里就可以调用了, 以下是一个调用示例: Private Sub CommandButton1_Click() Dim name As String, Col As Integer, Row As Long, sheet As Worksheet Col = 5 Row = 1 Set sheet = Sheet1 '设定工作表指针,这里直接使用工作表的名称指定 Call MyOutPut("表格导出测试", Col, Row, sheet) End Sub这样就会在当前excel文件的目录下导出一个 表格导出测试.xlsx 的Excel文件
Q&A Q1: 为什么我运行的时候提示“应用程序定义或对象定义错误 ” ? A1:这有可能是因为你在调用函数的时候,传入的sheet变量没有提前定义,注意需要提前执行 Dim sheet As Worksheet ,工作表指针必须提前定义,不能直接使用 set赋值
Q2: 我按照Q1的写好代码了,为什么我运行的时候还是提示“应用程序定义或对象定义错误 ” ?
A2:这有可能是因为你没有开启vba信任,开启方法如下: 点击“文件”-》“选项”-》信任中心-》宏设置,勾选下面的“信任对VBA工程对象模型的访问”。如果还不行,勾选上面蓝色框里的“启用VBA宏”
———————————————————————————————————————————————————————— (2019.10.14更新) FileFormat:=xlExcel8 这里是指定导出的格式,常见格式如下:xlAddIn 18 Microsoft Office Excel 加载项xlAddIn8 18 Excel 2007 加载项xlCSV 6 CSVxlCSVMac 22 Macintosh CSV xlCSVMSDOS 24 MSDOS CSVxlCSVWindows 23 Windows CSV xlCurrentPlatformText -4158 当前平台文本xlDBF2 7 DBF2xlDBF3 8 DBF3xlDBF4 11 DBF4xlDIF 9 DIFxlExcel12 50 Excel 12xlExcel2 16 Excel 2xlExcel2FarEast 27 Excel2 FarEastxlExcel3 29 Excel3xlExcel4 33 Excel4xlExcel4Workbook 35 Excel4 工作簿xlExcel5 39 Excel5xlExcel7 39 Excel7xlExcel8 56 Excel8xlExcel9795 43 Excel9795xlHtml 44 HTML 格式xlIntlAddIn 26 国际加载项xlIntlMacro 25 国际宏xlOpenXMLAddIn 55 打开 XML 加载项xlOpenXMLTemplate 54 打开 XML 模板xlOpenXMLTemplateMacroEnabled 53 打开启用的 XML 模板宏xlOpenXMLWorkbook 51 打开 XML 工作簿xlOpenXMLWorkbookMacroEnabled 52 打开启用的 XML 工作簿宏xlSYLK 2 SYLKxlTemplate 17 模板xlTemplate8 17 模板 8xlTextMac 19 Macintosh 文本xlTextMSDOS 21 MSDOS 文本xlTextPrinter 36 打印机文本xlTextWindows 20 Windows 文本xlUnicodeText 42 Unicode 文本xlWebArchive 45 Web 档案xlWJ2WD1 14 WJ2WD1xlWJ3 40 WJ3xlWJ3FJ3 41 WJ3FJ3xlWK1 5 WK1xlWK1ALL 31 WK1ALLxlWK1FMT 30 WK1FMTxlWK3 15 WK3xlWK3FM3 32 WK3FM3xlWK4 38 WK4xlWKS 4 工作表xlWorkbookDefault 51 默认工作簿xlWorkbookNormal -4143 常规工作簿xlWorks2FarEast 28 Works2 FarEastxlWQ1 34 WQ1xlXMLSpreadsheet 46 XML 电子表格 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |