因公司有大量的數據需要打印報表,老大讓我思考下可否通過VBA來進行打印,因在大學期間學習過vb課程,對于vba接觸起來還是比較快的,只是其中的一些細節和宏定義瞭解不深.現在把學習的心得總結一下.
vba的全文名稱是visual basic for application . 它是visual basic(vb) 的應用程序版本.但是它和vb用很大的不同,vb是運行在獨立的平臺上,而vba是借助在Excel的運行環境中,通過它可以讓Excel的操作變得越來越簡單.要全面掌握vba是一件很讓人糾結的事情,它擁用龐大的宏,但是實際上我們用到的比較少.如果你對于宏瞭解不深 最好的方法是錄製宏. 它在Excel工具欄中---工具----宏---錄製宏.說了這麼多貼代碼了!
'
'windowxp excel2007;
' SQL Server 2008
'@Autor MichaelYang
'
'
Public Function WorkBook_Open()
Dim Conn As New ADODB.Connection '定義ADODB連接對象
Dim ConnStr As String '定義連接字符串
'注意 如果是通過IP連接SQL server2008的話 需要開啟 SQL Server Browser服務
ConnStr = "Provider=SQLOLEDB.1;DATA SOURCE=10.1.xxx.xxxx;Password=test;User ID=test;Initial Catalog =vbaTest;"
Dim Records As New ADODB.Recordset
Dim Sheet As Worksheet
Set Sheet = ThisWorkbook.Worksheets(2)
If Sheet.Name = "" Then
Sheet.Name = "use_table"
Else
MsgBox "已經命名好了"
End If
Sheet.Cells.Clear '刪除原有的所有信息
If Conn.State = 1 Then
MsgBox "已經連接"
Else
Conn.Open ConnStr
End If
Dim SQLStr As String
SQLStr = "select * from use_table"
Records.Open SQLStr, Conn, adOpenStatic, adLockBatchOptimistic
Dim i, j, TotalRows, TotalColumns As Integer
j = 0
TotalRows = Records.RecordCount
TotalColunms = Records.Fields.Count
' Sheet.ClearArrows
' 用於插入列名
' For i = 0 To TotalColunms - 1
' Sheet.Cells(1, i + 1) = Records.Fields(i).Name
' Next
Do While Not Records.EOF '記錄集的
For i = 0 To TotalColunms - 1
Sheet.Cells(j + 3, i + 1) = Records.Fields(i).Value '從第三行開始輸入數據
Next
Records.MoveNext
j = j + 1
Loop
Records.Close
Conn.Close
Set Records = Nothing
Set Conn = Nothing
End Function
錄製宏test
Sub test()
'
' test Macro
' michaelyang 2011/3/28 魁籹エ栋
'
'
Range("A1:C1").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Range("A1:C1").Select
ActiveCell.FormulaR1C1 = "用戶密碼管理"
With ActiveCell.Characters(Start:=1, Length:=6).Font
.Name = "新細明體"
.FontStyle = "粗體"
.Size = 18
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Columns("C:C").Select
Range("C2").Activate
Selection.ColumnWidth = 8.75
Range("A1:C1").Select
Columns("C:C").ColumnWidth = 27
Columns("C:C").ColumnWidth = 8.38
Columns("A:C").Select
Range("A2").Activate
Selection.ColumnWidth = 26.5
Range("A1:C1").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Range("A2").Select
ActiveCell.FormulaR1C1 = "主鍵"
Range("B2").Select
ActiveCell.FormulaR1C1 = "用戶名"
Range("C2").Select
ActiveCell.FormulaR1C1 = "密碼"
Range("A2:C2").Select
Range("C2").Activate
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Interior
.ColorIndex = 47
.Pattern = xlSolid
End With
Range("A3").Select
WorkBook_Open
End Sub
分享到:
相关推荐
总结来说,“利用Word打印报表”涵盖的内容广泛,从基本的格式设置、页面布局,到高级的邮件合并和VBA编程,再到各种辅助工具的使用,都是提高报表质量和打印效率的关键。通过熟练掌握这些技巧,你可以在工作中更加...
### VBA针式打印机自定义打印 #### 概述 在日常办公环境中,尤其是财务、物流等业务场景中,往往需要频繁打印各种票据或报表。为了确保打印效果精确且高效,许多用户会采用VBA(Visual Basic for Applications)来...
在Excel中使用VBA可以实现各种复杂的数据操作和个性化报表输出,是实现Excel自动化的核心工具。 在实际应用中,通过VBA编程来批量打印含有照片的电子证件或表格是一个非常实用的功能。它能够将电子版的证件信息直接...
在VB(Visual Basic)编程环境中,设计和打印复杂的报表是一项常见的任务,特别是在开发企业级应用时。VB提供了丰富的打印功能,使得开发者可以轻松地创建出符合业务需求的报表。以下是一些关于如何利用VB设计打印...
3. **数据处理**:通过VBA调用Excel,利用Excel的报表生成和图表功能,对数据进行复杂处理,包括预览、打印等。 4. **Excel对象模型**:在VBA中,可以操作Excel的对象,如Application、Workbook、Worksheet和Range。...
### 利用VB设计打印复杂报表的关键知识点 #### 一、使用VB操作Excel设计复杂报表的概念与优势 在IT行业中,尤其是数据库管理系统的开发中,处理复杂报表的设计常常是一项挑战。传统的报表设计往往受限于软件本身的...
前两天为公司改程序,其中有一部分是要打印出报表。原来的程序是调用VB写的一个程序。那个程序用VBA方式实现的,在一个空的WORD表格模板里填入数据,让WORD去打印,效果还可以,就是速度很慢。但是这次,上次写代码...
在这个“Excel-VBA宏编程实例源代码-打印-打印多份年终总结报表”的压缩包中,我们主要关注的是如何使用VBA宏来高效地处理打印任务,特别是打印多份相同的报表。下面将详细介绍相关的知识点。 1. **VBA宏基础知识**...
在本主题中,我们讨论了如何使用Excel VBA(Visual Basic for Applications)实现报表的自动生成并导出为PDF格式。Excel VBA是Excel内置的编程语言,可以让用户通过编写宏来自动化Excel中的一系列任务,极大地提高...
以上就是使用MFC语言连接后台Excel文件并打印报表的基本流程。在实际开发中,还需要考虑错误处理、多线程安全等问题,以确保程序的稳定性和效率。同时,为了更高效地处理大量数据,可以利用Excel的VBA宏或者MFC的ADO...
在您提到的“labview打印word报表”场景中,LabVIEW被用来生成和打印Word文档,这通常是为了创建专业报告或者记录实验数据。 在LabVIEW中操作Word报表,通常涉及以下关键技术点: 1. **VIs(Virtual Instruments)...
以上就是VB中利用Word打印报表的基本步骤。根据实际需求,你可能还需要处理更多细节,如调整字体、字号、颜色,设置页眉和页脚,或者实现动态数据绑定等。在开发过程中,可以利用Word的VBA(Visual Basic for ...
打印多份员工工资报表.xlsx源码EXCEL VBA宏编程xlsx实例代码下载打印多份员工工资报表.xlsx源码EXCEL VBA宏编程xlsx实例代码下载打印多份员工工资报表.xlsx源码EXCEL VBA宏编程xlsx实例代码下载打印多份员工工资报表...
这个“Excel-VBA宏编程实例源代码-打印-设置企业固定资产报表页眉.zip”文件就是一个很好的例子,它展示了如何通过VBA来定制打印设置,特别是针对企业固定资产报表的页眉部分。以下将详细介绍其中可能包含的知识点:...
### INTOUCH中利用EXCEL打印报表的详细方法 #### 一、原理介绍 在工业自动化领域,INTOUCH作为一款广泛使用的HMI(人机界面)软件,提供了强大的数据收集和处理功能。为了满足报表制作的需求,INTOUCH可以配合...
在VB(Visual Basic)开发环境中,报表打印控件是一个至关重要的工具,用于生成、设计和打印各种类型的报表,如财务报告、销售分析、库存管理等。VB原生的报表功能可能无法满足所有开发者的需求,因此,寻找合适的第...
8. **自定义函数和脚本**:对于复杂的业务逻辑,水晶报表允许编写自定义函数或VBA脚本来实现更高级的计算和处理。 9. **水晶报表与应用程序集成**:水晶报表通常与其他应用程序(如.NET、Java应用)集成,作为后端...
9. 自定义函数和脚本:如果需要更高级的功能,可以编写自定义函数或使用VBA、VBScript等脚本来扩展水晶报表的功能,实现更复杂的计算或逻辑判断。 10. 分发与自动化:最后,水晶报表支持通过服务器进行定时发布或...
在excel中通过注册表获得所有系统打印机,并根据需要指定其一的代码。