VB中利用Cell组件实现打印和预览
- 格式:pdf
- 大小:100.76 KB
- 文档页数:2
VB操作Excel报表(实例、图例、源码、注释)用Excel报表非常方便,而用VB操作Excel更能延长VB的功能范围。
对于重复生成的表格更是非常方便。
字体,行高,列宽,合并单元格,排版等功能都有。
供大家学习研究。
VB中使用Excel控件要先引用哦。
要不你错都不知道哪错了。
郁闷吧!一、报表预览如下1、无内容报表如下:2、填表后预览如下:二、界面预览如下:打印记录按钮为Command3三、源码如下:Private Sub Command3_Click()声明一个新的Excel对象Set winkexcel = New Excel.Application该对象可见winkexcel.Visible = True选择第一张表为操作表winkexcel.SheetsInNewWorkbook = 1表添加内容Set winkworkbook = winkexcel.Workbooks.Add 设置指定单元格行高列宽Set xlsheet = winkworkbook.Worksheets(1) xlsheet.Rows(1).RowHeight = 45xlsheet.Rows(2).RowHeight = 33xlsheet.Rows(3).RowHeight = 33xlsheet.Rows(4).RowHeight = 33xlsheet.Rows(5).RowHeight = 33xlsheet.Rows(6).RowHeight = 300 xlsheet.Rows(7).RowHeight = 100 xlsheet.Rows(8).RowHeight = 45xlsheet.Rows(9).RowHeight = 45xlsheet.Rows(10).RowHeight = 26 xlsheet.Columns(1).ColumnWidth = 14 xlsheet.Columns(2).ColumnWidth = 24 xlsheet.Columns(3).ColumnWidth = 14 xlsheet.Columns(4).ColumnWidth = 24设置表格内容的对齐方式winkexcel.ActiveSheet.Rows.HorizontalAlignment = xlVAlignCenter'水平居中winkexcel.ActiveSheet.Rows.VerticalAlignment = xlVAlignCenter'垂直居中With winkexcel.ActiveSheet.Range("A1:D1")'合并单元格.MergeEnd WithWith winkexcel.ActiveSheet.Range("B6:D6")'合并单元格.MergeEnd WithWith winkexcel.ActiveSheet.Range("B7:D7")'合并单元格.MergeEnd With画边框线,细线,黑。
用VB操作Excel(VB6.0)(整理)全面控制Excel:首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1)显示当前窗口:ExcelID.Visible:=True;2)更改Excel标题栏:ExcelID.Caption:='应用程序调用MicrosoftExcel';3)添加新工作簿:ExcelID.WorkBooks.Add;4)打开已存在的工作簿:ExcelID.WorkBooks.Open('C:\Excel\Demo.xls');5)设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或ExcelID.WorkSheets['Sheet2'].Activate;6)给单元格赋值:ExcelID.Cells[1,4].Value:='第一行第四列';7)设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth:=5;8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米9)在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak:=1;10)在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak:=0;11)指定边框线宽度:ExcelID.ActiveSheet.Range['B3:D4'].Borders[2].Weight:=3;1-左2-右3-顶4-底5-斜(\) 6-斜(/)12)清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearContents;13)设置第一行字体属性:ExcelID.ActiveSheet.Rows[1]:='隶书';ExcelID.ActiveSheet.Rows[1].Font.Color :=clBlue; ExcelID.ActiveSheet.Rows[1].Font.Bold :=True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine:=True;14)进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader:='报表演示'; b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter:='第&P页';c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=2/0.035;d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=3/0.035;e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.TopMargin:=2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin:=2/0.035;g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin:=2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin:=2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally:=2/0.035; j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically:=2/0.035; k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines:=True;15)拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelID.ActiveSheet.Range['A1:E2'].Copy;c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.['A1'].PasteSpecial;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16)插入一行或一列:a.ExcelID.ActiveSheet.Rows[2].Insert;b.ExcelID.ActiveSheet.Columns[1].Insert;17)删除一行或一列:a.ExcelID.ActiveSheet.Rows[2].Delete;b.ExcelID.ActiveSheet.Columns[1].Delete;18)打印预览工作表:ExcelID.ActiveSheet.PrintPreview;19)打印输出工作表:ExcelID.ActiveSheet.PrintOut;20)工作表保存:IfnotExcelID.ActiveWorkBook.SavedthenExcelID.ActiveSheet.PrintPreviewEndif21)工作表另存为:ExcelID.SaveAs('C:\Excel\Demo1.xls');22)放弃存盘:ExcelID.ActiveWorkBook.Saved:=True;23)关闭工作簿:ExcelID.WorkBooks.Close;24)退出Excel:ExcelID.Quit;25)设置工作表密码:ExcelID.ActiveSheet.Protect"123",DrawingObjects:=True,Contents:=True,Scena rios:=True26)EXCEL的显示方式为最大化ExcelID.Application.WindowState=xlMaximized27)工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState=xlMaximized28)设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook=329)'关闭时是否提示保存(true保存;false不保存)ExcelID.DisplayAlerts=False30)设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow=1ExcelID.ActiveWindow.FreezePanes=True31)设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows="$1:$1"32)设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns=""33)设置显示方式(分页方式显示)ExcelID.ActiveWindow.View=xlPageBreakPreview34)设置显示比例ExcelID.ActiveWindow.Zoom=10035)让Excel响应DDE请求Ex.Application.IgnoreRemoteRequests=False用VB操作EXCEL示例代码Private Sub Command3_Click()On Error GoTo err1Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer=11 '改变鼠标样式Set objExl=New Excel.Application'初始化对象变量objExl.SheetsInNewWorkbook=1 '将新建的工作薄数量设为1objExl.Workbooks.Add'增加一个工作薄objExl.Sheets(objExl.Sheets.Count).Name="book1" '修改工作薄名称objExl.Sheets.Add,objExl.Sheets("book1")‘增加第二个工作薄在第一个之后objExl.Sheets(objExl.Sheets.Count).Name="book2"objExl.Sheets.Add,objExl.Sheets("book2")‘增加第三个工作薄在第二个之后objExl.Sheets(objExl.Sheets.Count).Name="book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i=1 To 50'循环写入数据For j=1 To 5If i=1 ThenobjExl.Selection.NumberFormatLocal="@" '设置格式为文本objExl.Cells(i,j)="E"&i&jElseobjExl.Cells(i,j)=i&jEndIfNextNextobjExl.Rows("1:1").Select '选中第一行objExl.Selection.Font.Bold=True '设为粗体objExl.Selection.Font.Size=24 '设置字体大小objExl.Cells.EntireColumn.AutoFit '自动调整列宽objExl.ActiveWindow.SplitRow=1 '拆分第一行objExl.ActiveWindow.SplitColumn=0 '拆分列objExl.ActiveWindow.FreezePanes=True '固定拆分objExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$1" '设置打印固定行objExl.ActiveSheet.PageSetup.PrintTitleColumns=""'打印标题objExl.ActiveSheet.PageSetup.RightFooter="打印时间:"&_Format(Now,"yyyy年mm月dd日hh:MM:ss")objExl.ActiveWindow.View=xlPageBreakPreview'设置显示方式objExl.ActiveWindow.Zoom=100 '设置显示大小'给工作表加密码objExl.ActiveSheet.Protect"123",DrawingObjects:=True, _ Contents:=True,Scenarios:=TrueobjExl.Application.IgnoreRemoteRequests=FalseobjExl.Visible=True '使EXCEL可见objExl.Application.WindowState=xlMaximized'EXCEL的显示方式为最大化objExl.ActiveWindow.WindowState=xlMaximized'工作薄显示方式为最大化objExl.SheetsInNewWorkbook=3 '将默认新工作薄数量改回3个Set objExl=Nothing'清除对象Me.MousePointer=0 '修改鼠标ExitSuberr1:objExl.SheetsInNewWorkbook=3objExl.DisplayAlerts=False '关闭时不提示保存objExl.Quit'关闭EXCELobjExl.DisplayAlerts=True '关闭时提示保存Set objExl=NothingMe.MousePointer=0End SubPrivate Sub Command3_Click()On Error GoTo err1Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer = 11 '改变鼠标样式Set objExl = New Excel.Application '初始化对象变量objExl.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1objExl.Workbooks.Add '增加一个工作薄objExl.Sheets(objExl.Sheets.Count).Name = "book1" '修改工作薄名称objExl.Sheets.Add , objExl.Sheets("book1") '增加第二个工作薄在第一个之后objExl.Sheets(objExl.Sheets.Count).Name = "book2"objExl.Sheets.Add , objExl.Sheets("book2") '增加第三个工作薄在第二个之后objExl.Sheets(objExl.Sheets.Count).Name = "book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i = 1 To 50 '循环写入数据For j = 1 To 5If i = 1 ThenobjExl.Selection.NumberFormatLocal = "@" '设置格式为文本objExl.Cells(i, j) = " E " & i & jElseobjExl.Cells(i, j) = i & jEnd IfNextNextobjExl.Rows("1:1").Select '选中第一行objExl.Selection.Font.Bold = True '设为粗体objExl.Selection.Font.Size = 24 '设置字体大小objExl.Cells.EntireColumn.AutoFit '自动调整列宽objExl.ActiveWindow.SplitRow = 1 '拆分第一行objExl.ActiveWindow.SplitColumn = 0 '拆分列objExl.ActiveWindow.FreezePanes = True '固定拆分objExl.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1" '设置打印固定行objExl.ActiveSheet.PageSetup.PrintTitleColumns = "" '打印标题 objExl.ActiveSheet.PageSetup.RightFooter = "打印时间: " & _Format(Now, "yyyy年mm 月dd日 hh:MM:ss")objExl.ActiveWindow.View = xlPageBreakPreview '设置显示方式objExl.ActiveWindow.Zoom = 100 '设置显示大小'给工作表加密码objExl.ActiveSheet.Protect "123", DrawingObjects:=True, _Contents:=True, Scenarios:=TrueobjExl.Application.IgnoreRemoteRequests = FalseobjExl.Visible = True '使EXCEL可见objExl.Application.WindowState = xlMaximized 'EXCEL的显示方式为最大化objExl.ActiveWindow.WindowState = xlMaximized '工作薄显示方式为最大化objExl.SheetsInNewWorkbook = 3 '将默认新工作薄数量改回3个Set objExl = Nothing '清除对象Me.MousePointer = 0 '修改鼠标Exit Suberr1:objExl.SheetsInNewWorkbook = 3objExl.DisplayAlerts = False '关闭时不提示保存objExl.Quit '关闭EXCELobjExl.DisplayAlerts = True '关闭时提示保存Set objExl = NothingMe.MousePointer = 0End Sub=====================================全面控制 Excel首先创建 Excel 对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1) 显示当前窗口:ExcelID.Visible := True;2) 更改 Excel 标题栏:ExcelID.Caption := '应用程序调用 Microsoft Exce l';3) 添加新工作簿:ExcelID.WorkBooks.Add;4) 打开已存在的工作簿:ExcelID.WorkBooks.Open( 'C:\Excel\Demo.xls' );5) 设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或 ExcelID.WorkSheets[ 'Sheet2' ].Activate;6) 给单元格赋值:ExcelID.Cells[1,4].Value := '第一行第四列';7) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米9) 在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;10) 在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak := 0;11) 指定边框线宽度:ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3; 1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )12) 清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearC ontents;13) 设置第一行字体属性:ExcelID.ActiveSheet.Rows[1] := '隶书';ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue;ExcelID.ActiveSheet.Rows[1].Font.Bold := True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;14) 进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader := '报表演示';b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P页';c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically := 2 /0.035;k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines := T rue;15) 拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy;c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecia l;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16) 插入一行或一列:a. ExcelID.ActiveSheet.Rows[2].Insert;b. ExcelID.ActiveSheet.Columns[1].Insert;17) 删除一行或一列:a. ExcelID.ActiveSheet.Rows[2].Delete;b. ExcelID.ActiveSheet.Columns[1].Delete;18) 打印预览工作表:ExcelID.ActiveSheet.PrintPreview;19) 打印输出工作表:ExcelID.ActiveSheet.PrintOut;20) 工作表保存:If not ExcelID.ActiveWorkBook.Saved thenExcelID.ActiveSheet.PrintPreviewEnd if21) 工作表另存为:ExcelID.SaveAs( 'C:\Excel\Demo1.xls' );22) 放弃存盘:ExcelID.ActiveWorkBook.Saved := True;23) 关闭工作簿:ExcelID.WorkBooks.Close;24) 退出 Excel:ExcelID.Quit;25) 设置工作表密码:ExcelID.ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=Tr ue, Scenarios:=True26) EXCEL的显示方式为最大化ExcelID.Application.WindowState = xlMaximized27) 工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState = xlMaximized28) 设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook = 329) '关闭时是否提示保存(true 保存;false 不保存) ExcelID.DisplayAlerts = False30) 设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow = 1ExcelID.ActiveWindow.FreezePanes = True31) 设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"32) 设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = ""33) 设置显示方式(分页方式显示)ExcelID.ActiveWindow.View = xlPageBreakPreview34) 设置显示比例ExcelID.ActiveWindow.Zoom = 10035) 让Excel 响应 DDE 请求Ex.Application.IgnoreRemoteRequests = False。
打印设置打印预览和预览控制器的实例效果图1:效果图2:提示:调试环境为vs2005 + windows2003 / windows2008 / xp / vista 代码如下:Public Class PrintFormDim pageset As Printing.PageSettings = New Printing.PageSettings()Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton1.ClickPageSetupDialog1.Document = PrintDocument1 ''设置Document属性=文档对象或者与PageSettings类关联就可以使用该控件PageSetupDialog1.AllowMargins = TruePageSetupDialog1.PageSettings = PrintDocument1.DefaultPageSettingsDim re As DialogResult = PageSetupDialog1.ShowDialog()If re = Windows.Forms.DialogResult.OK Thenpageset = PageSetupDialog1.PageSettingsEnd IfEnd SubPrivate Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e AsSystem.Drawing.Printing.PrintPageEventArgs)Dim mypen As Pen = New Pen(Color.Blue, 2)PrintDocument1.DefaultPageSettings = pagesete.Graphics.DrawString(RichTextBox1.Text, New Font("黑体", 15), mypen.Brush, 10, 10)End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton3.ClickPrintDialog1.Document = PrintDocument1PrintDialog1.PrinterSettings.Copies = 5 ''打印的份数PrintDialog1.PrinterSettings.FromPage = 1 ''第一页的页码PrintDialog1.PrinterSettings.ToPage = 5 ''最后一页页码Dim re As DialogResult = PrintDialog1.ShowDialog()If re = Windows.Forms.DialogResult.OK ThenAddHandler PrintDocument1.PrintPage, AddressOf Me.PrintDocument1_PrintPagePrintDocument1.Print()End IfEnd Sub '更多.net源码和教程,来自[乐博网]Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton4.ClickPrintPreviewDialog1.Document = PrintDocument1AddHandler PrintDocument1.PrintPage, AddressOf Me.PrintDocument1_PrintPagePrintPreviewDialog1.PrintPreviewControl.Zoom = 1.0PrintPreviewDialog1.WindowState = FormWindowState.NormalPrintPreviewDialog1.ShowDialog()End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickDim PrintPreviewControl1 As PrintPreviewControl = New PrintPreviewControl = "PrintPreviewControl1"PrintPreviewControl1.Dock = DockStyle.FillPrintPreviewControl1.Document = PrintDocument1eAntiAlias = TrueAddHandler PrintDocument1.PrintPage, AddressOf Me.PrintDocument1_PrintPageForm1.Controls.Add(PrintPreviewControl1)PrintPreviewControl1.Show()Form1.Show()End SubEnd Class。
vba中cells的用法
以下是 8 条关于 VBA 中 Cells 用法的内容:
1. 嘿,你知道吗,Cells 可以直接指定单元格呀!比如说,Cells(1, 1)就能指向第一行第一列的那个单元格呢,就像你能准确找到你最喜欢的那件衣服在衣柜的位置一样神奇!
2. 哇塞,Cells 还能通过行号和列号来给单元格赋值呢!像 Cells(2, 3) = "新数据",这不就像给一个特定的小盒子放进了新东西一样吗?
3. 告诉你哦,Cells 可以快速地获取单元格里的值呀!Cells(5, 4).Value,一下子就把那个格子里的宝贝数据给抓出来啦,这多酷呀!
4. 嘿呀,你想想,要是能灵活运用 Cells,那简直就像拥有了一把万能钥匙呀!比如用 Cells(10, 5). = vbRed 来改变单元格的颜色,这也太有意思了吧!
5. 哎呀,Cells 还能帮我们批量处理单元格呢!就好像指挥一群小兵一样,厉害吧?像遍历所有单元格,那可全靠它啦!
6. 哇哦,Cells 可不只是能做简单的事呢,它可以让我们对单元格进行各种复杂操作呀!这就像是一个超级工具,能搞定好多难题呢!
7. 你晓得不,使用 Cells 可以轻松地切换聚焦的单元格呀!就像你的眼神可以迅速从一个地方跳到另一个地方一样神奇,是不是很赞?
8. 真的呀,Cells 绝对是VBA 里超实用的存在呀!当你熟练运用它的时候,就像掌握了一项绝世武功一样厉害呢,难道不是吗?
我觉得呀,Cells 在 VBA 里的作用那可真是太重要了,熟练掌握它能让我们的编程效率大大提高,能做出好多超棒的功能呢!。
VB中MsFlexGrid控件的使用细则及应用举例1.VB中MsFlexGrid控件的使用细则>> 将文本赋值给MsFlexGrid的单元格MsFlexGrid.TextMatrix(3,1)=”Hello” .>> 在MsFlexGrid控件单元格中插入背景图形Set MsFlexGrid.CellPicture=LoadPicture(“C:\temp\1.bmp”) 版权申明:本站文章均来自网络.>>选中某个单元MsFlexGrid.Row=1MsFlexGrid.Col=1 。
>>用粗体格式化当前选中单元MsFlexGrid.CellFontBold=True 根据专家观察,这样的理论和现象都是值得各位站长深思的,所以希望大家多做研究学习,争取总结出更多更好的经验!>> 添加新的一行使用AddItem方法,用Tab字符分开不同单元格的内容dim row as stringrow=”AAA”&VBtab&”bbb”MsFlexFrid1.addItem row ..>>怎样来实现MSFlexGrid控件单数行背景为白色,双数的行背景为蓝色?Dim i As IntegerWith MSFlexGrid1.AllowBigSelection = True ’ 设置网格样式.FillStyle = flexFillRepeatFor i = 0 To .Rows - 1.Row = i: .Col = .FixedCols.ColSel = .Cols() - .FixedCols - 1If i Mod 2 = 0 Then.CellBackColor = &HC0C0C0 ’ 浅灰Else.CellBackColor = vbBlue ’ 兰色End IfNext iEnd With 。
>> MSFlexGrid控件如何移到最后一行MSFlexGrid1.TopRow = MSFlexGrid1.Rows – 1 版权申明:本站文章均来自网络,如有侵权,请联系************-215,我们收到后立即删除,谢谢!>>如何判断msflexgrid有无滚动条Declare Function GetScrollRange Lib "user32" (ByVal hWnd As Long, ByVal nBar As Long, lpMinPos As Long, lpMaxPos As Long) As LongPublic Const SB_HORZ = &H0Public Const SB_VERT = &H1 .Public Function VsScroll(MshGrid As MSHFlexGrid) As Boolean ’判断水平滚动条的可见性Dim i As LongVsScroll = Falsei = GetScrollRange(MshGrid.hWnd, SB_HORZ, lpMinPos,lpMaxPos)If lpMaxPos <> lpMinPos Then VsScroll = TrueEnd Function 。
Excel-VBA通过设置实现双面打印应用场景通过设置隔页打印和提醒,实现文件的双面打印知识要点1:ActiveWindow.View = xlPageBreakPreview 设置分页预览2:Application.ExecuteExcel4Macro('get.document(50)') 宏表函数计算页数3:Range.PrintOut 方法打印对象Sub 双面打印()On Error Resume NextIf VBA.IsEmpty(edRange) Then MsgBox '当前工作表为空!', 64, '出错': Exit SubDim Pages As Integer, Ji As Integer, Ou As IntegerActiveWindow.View = xlPageBreakPreview '进入分页预览,便于获取页数Pages = Application.ExecuteExcel4Macro('get.document(50)') '利用宏表函数计算页数For Ji = 1 To Int(Pages / 2) 1 '遍历每一页'sheets.printout(form,to,copies,priview,.....)'打印对象,from 打印开始页号,如果省略从起始位置开始,to 打印终止页号,如果省略,则打印至最后一页'copies打印份数,如果省略,只打印一份ActiveSheet.PrintOut form:=2 * Ji - 1, To:=2 * Ji - 1, copies:=1, collate:=True '打印奇数页Next JiMsgBox '请将打印纸反向装入打印机中,' & Chr(10) & '开始打印另一面!', 64, '友情提示'For Ou = 1 To Int(Pages / 2) 1 '在打印偶数页ActiveSheet.PrintOut from:=2 * Ou, To:=2 * Ou, copies:=1, collate:=TrueNext OuActiveWindow.View = xlNormalView '还原为常规视图End Sub。
VB表格控件总览与例程说明一.表格控件总览:在VB开发环境中,表格控件在界面开发元素中占有重要的地位。
它不仅有外观整洁、表达形式规范的优点,而且更重要的是它较高的信息表现率(就是相对于其他控件来说能够表达更多的信息),随着信息时代的到来,它的应用将更加的广泛。
那么在VB平台下,如何操作这一功能强大的控件元素呢?事实上我们知道,VB平台下面的表格控件是相当丰富的,总结下来提供了4种类型:Microsoft Data Bound grid Control、Microsoft Datagrid Control、Microsoft Flexgrid Control、Microsoft Hierarchial Flexgrid Control.这四种表格各有其特点,下面我们一一讨论。
1. Microsoft Data Bound grid Control此控件主要用于数据绑定(可以不绑定,但是因为不提供对单个cell的控制支持,所以实际上这样做是不经济的)。
具体说来,就是数据源比较固定的情况下可以使用这种控件。
具体使用方法是设定此控件的datasource属性,就可以不用编写任何代码就可以显示该数据源所指向的记录数据。
比如可以将datasource设置为一个data控件,而data控件又指向数据库"成绩"的一个"语文"表,那么当程序运行时,它就自动显示此"语文"表的数据。
从上面的分析看得出来,这个控件虽然操作方便,但是它也有局限性,就是不能对显示的数据进行灵活的控制操作,比如有些数据允许用户修改,有些数据却不允许用户修改,而此控件却只能提供全部数据源的原子操作:即要么全部允许修改,要么就全部不允许。
还有另外此控件也不提供对单个单元格(cell)进行操作,所以提供不了更为个性化的界面风格。
2. Microsoft Datagrid Control此控件跟前面介绍的Data Bound grid Control控件很相似,也是主要进行绑定操作,而缺点和Data Bound grid Control完全一样。
excel vba中的cells单元格的用法Excel VBA中的Cells函数是一种非常常用的方法,用于在VBA代码中引用和操作单元格数据。
它使得开发人员能够以编程方式访问和修改Excel表格中的数据。
在本篇文章中,我将为您详细介绍Cells函数的用法和示例,以帮助您更好地理解和运用它。
首先,让我们来了解一下Cells函数的语法。
Cells函数的语法如下:Cells(RowIndex, ColumnIndex)其中RowIndex代表行索引,而ColumnIndex代表列索引。
它们都是必需的参数,并指定了您要引用的单元格的位置。
这里需要注意的是,行索引和列索引都是以1开始的。
例如,第一行的行索引是1,第一列的列索引也是1。
接下来,我们将一步一步地学习如何使用Cells函数来操作单元格数据。
1. 引用单元格的值要引用单元格的值,您可以使用Cells函数将其作为表达式的一部分使用。
例如,以下示例将引用A1单元格的值并将其输出到消息框中:MsgBox Cells(1, 1).Value这将显示A1单元格中的值。
2. 修改单元格的值您可以使用Cells函数来修改单元格的值。
以下示例演示了如何将A1单元格的值修改为"Hello, World!":Cells(1, 1).Value = "Hello, World!"3. 循环遍历单元格您可以使用For循环结构和Cells函数来遍历和操作一系列单元格。
以下示例演示了如何遍历A1到A10单元格,并将每个单元格的值输出到消息框中:Dim i As IntegerFor i = 1 T o 10MsgBox Cells(i, 1).ValueNext i4. 动态引用单元格有时候,您可能需要动态地引用单元格,即根据变量的值来引用不同的单元格。
以下示例演示了如何使用变量引用A1到A10单元格,并将每个单元格的值输出到消息框中:Dim i As IntegerFor i = 1 T o 10MsgBox Cells(i, 1).ValueNext i上述示例中的Rowindex参数使用了循环变量i的值,因此它可以根据循环的进度引用不同的行。
vba cell用法详解在VBA(Visual Basic for Applications)中,`Cell`(单元格)通常指的是`Range`对象,用于表示工作表上的单个单元格或单元格区域。
下面是一些关于VBA中`Cell`的常见用法的详细解释:1. 获取单元格的值:```vbaDim cellValue As Variant' 获取单元格A1的值cellValue = Range("A1").Value' 打印单元格A1的值Debug.Print "A1的值是:" & cellValue```这里,`Range("A1")`表示工作表上的A1单元格,`.Value`用于获取该单元格的值,并将其存储在变量`cellValue`中。
`Debug.Print`用于在VBA的调试窗口中打印消息。
2. 设置单元格的值:```vba' 将值设置到B2单元格Range("B2").Value = "Hello, VBA!"' 将数值设置到C3单元格Range("C3").Value = 123```通过将值赋给`Range`对象的`.Value`属性,你可以设置单元格的值。
3. 循环遍历单元格:```vbaDim cell As Range' 遍历A列中的每个单元格For Each cell In Range("A:A")' 处理每个单元格的值Debug.Print cell.ValueNext cell```这个例子演示了如何使用`For Each`循环遍历某一列中的每个单元格。
`Range("A:A")`表示A 列的所有单元格。
在循环中,`cell`变量逐个表示每个单元格,你可以通过`cell.Value`访问单元格的值。
Cell(华表)组件的方法Cell(华表)组件提供了大量的方法以操作其中数据,根据功能分为以下类别∶1打印及打印预览方法DoPrint 打印DoPrintPreview 打印预览DoPrintPageSetup 打印设置DoSetPrintHead 设置页眉DoSetPrintFoot 设置页脚DoSetPrintLabel 设置打印行列标DoSetPrintTitle 设置页标题DoSetPrintPara 设置打印参数(纸张,缩放等)DoSetPrintPara2 设置打印参数(缩放,表线,隐藏单元等) DoSetPrinter 设置打印机DoPrintPage 打印表页DoPrintPreviewPage 表页内容打印预览DoSetPrintPara3 设置打印参数(水平垂直居中)DoSetPrintRange 设置打印范围DoSetPrintMargin 设置页边距2 Undo与RedoDoUndo UNDODORedo REDODoDiscardUndo 抛弃UNDO信息DoGetUndoState 当前是否能UNDODoGetRedoState 当前是否能REDO3表格基本属性DoSetBackGround 设置控件背景模式DoSetDefaultFont 设置缺省字体DoSetCanDragDrop 是否允许拖放DoSetUnScrollRow 设置不滚动行DoSetUnScrollCol 设置不滚动列IsModified 控件中内容是否被改动过DoSetModifiedFlag 设置改动标志4 与单元有关的方法DoSetCellAlignment 设置单元对齐DoSetCellTextStyle 设置单元文本风格DoSetCell3DState 设置单元3D风格DoSetCellData 设置单元数据DoSetPageCellData 设置指定页单元数据DoSetCellNumberStyle 设置单元数值格式DoSetButtonCell 设置按钮单元DoSetButtonCellEx 设置按钮单元DoSetRadioCell 设置单选钮单元DoSetDroplistCell 设置下拉框单元DoSetCheckboxCell 设置核选框单元DoSetTextSpinCell 设置文本滚卷钮单元DoSetValueSpinCell 设置数值滚卷钮单元DoSetNormalCell 设置普通单元DoSetCellInputControlCase 控制输入大小写DoSetCellInputControlMask 输入控制串DoSetCellInputOnlyValue 只输入数值DoSetCellColor 设置单元颜色DoSetCellPicture 设置单元图片DoGetCellData 得到单元数据DoGetCellDataFromFile 从文件中得到单元数据DoGetPageCellData 得到指定页单元数据DoSetCellValue 设置单元数值DoSetCellString 设置单元字符串DoSetCellReadOnly 设置单元只读DoSetDropGridCell 设置下拉窗口DoSetCellFont 设置单元字体DoSetCellPrintable 设置打印时是否隐藏本单元内容DoSetHintButtonCell 设置提示风格按钮单元DoGetCellFont 得到单元格字体DoGetCellColor 得到单元格颜色DoGetCellAlignment 得到单元格对齐DoGetCellTextStyle 得到单元格文本风格(是否自动折行等)DoGetCellNumberStyle 得到单元格数值格式DoGetCellDataType 得到单元格数据属性(数值或字符串)IsReadOnlyCell 是否是只读单元DoClearCell 清除单元格内容DoSetCellTextOrientation 设置单元文字方向DoGetCellTextOrientation 得到单元文字方向DoSetCellNote 设置单元注解(用户数据)DoGetCellNote 得到单元注解(用户数据)DoSetCellTextMode 设置单元到字符模式DoGetCellTextMode 得到单元到字符模式状态DoGetPageCellString 得到单元的字符串内容DoGetPageCellValue 得到单元的字符串内容DoGetCellShowZero 得到单元是否显示零值DoSetCellShowZero 设置单元是否显示零值5表格式方法DoInsertCol 插入列DoInsertRow 插入行DoAppendCol 追加列DoAppendRow 追加行DoDeleteCol 删除列DoDeleteRow 删除行6绘制方法DoRedrawAll 重绘全部(包括行列标等等)DoRedrawCell 重绘单元DoRedrawRange 重绘区域DoRedrawGrid 重绘表格DoRedrawTopLabel 重绘列标DoRedrawSideLabel 重绘行标DoRedrawHScroll 重绘水平滚卷条DoRedrawVScroll 重绘垂直滚卷条DoRedrawPageLabel 重绘页签7表页方法DoDeletePage 删除页DoSetPageLabel 设置页签DoGetPageLabel 得到页签DoAppendPage 追加页DoSetCurrentPage 设置当前页DoGetCurrentPage 得到当前页DoSetTotalPages 设置表页数DoGetTotalPages 得到表页数DoInsertPage 插入表页DoResetContent 清除控件内容DoCopyPage 复制页(注意,源及目标都必须存在) DoAppendPageFromFile 从文件中追加页8行列属性方法DoSetDefaultRowHeight 设置缺省行高DoSetDefaultColWidth 设置缺省列宽DoSetRowHeight 设置行高DoSetColWidth 设置列宽DoSetRowHeightEx 设置行高DoSetColWidthEx 设置列宽DoGetColWidth 得到列宽DoGetColBestWidth 得到最佳列宽DoGetRowHeight 得到行高DoGetRowBestHeight 得到最佳行高DoSetEqualRowHeight 设置统一行高DoGetColWidthVB 得到列宽DoGetRowHeightVB 得到行高9组合单元方法DoJoinCells 设置组合单元DoUnJoinCells 取消组合单元DoGetJoinRange 得到组合范围DoGetJoinRangeVB 得到组合范围10公式及表达式DoSetFormula 设置公式DoDelFormula 删除公式DoCalculateAll 计算所有表页DoCalculatePage 计算某一页IsFormulaCell 是否公式单元DoAddUserFunction 追加自定义函数DoAddUserFunctionEx 追加自定义函数(可以设定缺省参数) DoDelUserFunction 删除自定义函数DoGetFormula 得到公式DoCalculateExpr 计算表达式DoInputFormula 输入公式DoFetchFuncParameter 取参数值DoFetchFuncParameter2 取参数值DoAddUserFunctionVB 最佳自定义函数DoCalculateExprVB 计算表达式DoSetShowFormulaState 是否显示公式DoGetShowFormulaState 得到是否显示公式DoSetFormulaWizardOption 公式向导DoGetFormulaWizardOption 得到公式向导状态11有关图表的方法DoChartGuide 图表向导DoSetRefChart 设置引用图表DoSetChart 设置图表DoSetChartRefData 设置图表引用数据DoSetChartData 设置图表数据DoDelChart 删除图表IsChartCell 是否图表单元DoSetChartValueData 设置图表数据DoSetChartStringData 设置图表数据DoSetChartGeneralData 设置图表数据DoRefreshChart 刷新图表12单元选择DoSelectCell 选择单元DoSelectRange 选择区域DoGetSelectRange 得到当前选择区域DoClearSelection 取消选择IsSelectedCell 单元是否选中DoGetFirstSelectedCell 第一个被选中的单元DoGetNextSelectedCell 下一个被选中的单元DoShowCurrentCell 是否突出显示当前单元格DoGetFirstSelectedCellVB 得到第一个选择单元DoGetNextSelectedCellVB 得到下一个选择单元13剪贴板操作方法DoCopyArea 复制区域DoCopySelected 复制选择区域DoCutSelected 剪切选中单元DoCutArea 剪切区域DoPaste 粘贴14表格线方法DoDrawHLine 画横线DoDrawVLine 画竖线DoDrawXLine 画斜线DoDelXLine 删除表线DoDelHLine 删除横线DoDelVLine 删除竖线DoDrawLineDlg 画线对话框DoDrawLine 画线DoClearLine 清除表线15查找替换定位方法DoFind 查找DoReplace 替换DoLocate 定位DoShowFindDialog 显示查找对话框DoCloseFindDialog 关闭查找对话框16文件及数据库方法DoOpenFileDbase 打开文件型数据库DoOpenFileDbaseVfp 打开文件型数据库DoOpenODBCDbase 打开ODBC数据库DoOpenODBCDbaseVfp 打开ODBC数据库DoDumpDbaseData 从数据库中取数DoDumpDbaseDataVfp 从数据库中取数DoDumpDbaseTable 从数据库中取数DoCloseDbase 关闭数据库DoSaveFile 保存文件DoOpenFile 打开文件DoRemoveODBCDSN 删除ODBC数据源DoCreateODBCDSN 创建ODBC数据源DoSaveTextFile 保存文本文件DoSaveHtmlFile 保存HTML文件DoReadTextFile 读入文本文件DoReadFromBuffer 从内存变量中读入文件DoSaveToBuffer 保存表格内容到内存变量DoOpenFileEx 打开文件(带密码) DoSetFilePassword 设置文件密码DoImportExcelFile 引入Excel文件DoExportExcelFile 输出Excel文件DoOpenFTPFile 打开远程FTP文件DoSaveFTPFile 保存远程FTP文件17单元位置方法DoGetLeftCol 得到最左边的列号DoGetTopRow 得到最上边的行号DoGetCurrentCol 得到当前单元列号DoGetCurrentRow 得到当前单元行号DoSetLeftCol 设置最左边列号DoSetTopRow 设置最上边行号DoMoveToCell 移动到某单元DoSetSkipReadOnlyCell 禁入跳过只读单元DoGetSkipReadOnlyCell得到禁入跳过只读单元DoEnableMoveOffset 回车后是否移动单元DoSetMoveOffset 设置移动位移DoGetMoveOffset 得到移动位移18其它DoSortByCol 以列排序DoSetSortCol 设置排序列DoLogin 登录GetUserDouble 得到用户自定义数值参数GetUserString 得到用户自定义字符串参数SetUserDouble 设置用户自定义数值参数SetUserString 设置用户自定义字符串参数AboutBox 关于Cols 表格行数Rows 表格列数Border 是否显示控件边框TopLabelVisible 是否显示列标SideLabelVisible 是否显示行标HScrollVisible 是否显示水平滚卷条VScrollVisible 是否显示垂直滚卷条PageLabelVisible 是否显示页签TopLabelHeight 列标的高度SideLabelWidth 行标的宽度RowSelectedMode 设置整行选择模式MultiSelectedMode 设置多选模式DynamicEditArea 是否允许动态扩大编辑区域MultiColSizeMode 用鼠标改变多列列宽MultiRowSizeMode 用鼠标改变多行行高GridReadOnly 设置控件为只读方式EnablePopMenu 允许右键弹出菜单CurrentTopLabelHint 在列标突出显示当前单元位置CurrentSideLabelHint 在行标突出显示当前单元位置ResizeWhenPasteNeed 粘贴超范围时是否扩大表格AllowSizeCell 是否允许用鼠标拖拉单元的角EnableUndo 是否允许UNDO AllowSizeColInGrid 是否允许在表格中设置列宽AllowSizeRowInGrid 是否允许在表格中设置行高ShowZeroResult 是否显示公式零值结果JoinCellPrintMode 组合单元跨页时是拆打还是不打印CalcManaually 是否手动计算PrintSingleColor 是否单色打印。
VB操作EXCEL表的常用方法VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。
因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。
但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。
一、 VB读写EXCEL表:VB本身提自动化功能可以读写EXCEL表,其方法如下:1、在工程中引用Microsoft Excel类型库:从'工程'菜单中选择'引用'栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择'确定'。
表示在工程中要引用EXCEL类型库。
2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkBookDim xlSheet As Excel.Worksheet3、在程序中操作EXCEL表常用命令:Set xlApp = CreateObject('Excel.Application') '创建EXCEL对象Set xlBook = xlApp.Workbooks.Open('文件名') '打开已经存在的EXCEL工件簿文件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlSheet = xlBook.Worksheets('表名') '设置活动工作表xlApp.Cells(row, col) =值 '给单元格(row,col)赋值XLApp.Cells(i, 1).Interior.ColorIndex = i'设计单元格颜色i=1--56xlSheet.PrintOut '打印工作表xlBook.Close (True) '关闭工作簿xlApp.Quit '结束EXCEL对象Set xlApp = Nothing '释放xlApp对象xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏自己用代码就可以获取颜色列表了Sub yansecode()For i = 1 To 56XlApp.Cells(i, 1) = ixlapp.Cells(i, 1).Interior.ColorIndex = iNextEnd Sub4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。
VB控制EXCEL进行报表设计及打印VB控制EXCEL进行报表设计及打印在工控程序的开发中,经常涉及到数据信息的分析、加工,最终还需把统计结果形成各种形式的报表打印输出。
在Visual Basic中制作报表,通常是用数据环境设计器(DataEnvironment Designer)与数据报表设计器(Data Report Designer),或者使用第三方产品来完成。
但对于大多数习惯于Excel报表的用户而言,用以上方法生成的报表在格式和功能等方面往往不能满足他们的要求。
由于Excel具有自己的对象库,在Visual Basic工程中可以加以引用,通过对Excel使用OLE自动化,可以创建一些外观整洁的报表,然后打印输出。
这样实现了Visual Basi应用程序对Excel的控制。
本文将针对一个具体实例,阐述基于VB和EXCEL的报表设计及打印过程。
1)创建Excel对象Excel对象模型包括了128个不同的对象,从矩形、文本框等简单的对象到透视表,图表等复杂的对象。
下面简单介绍一下其中最重要,也是用得最多的五个对象。
(1)Application对象:Application对象处于Excel对象层次结构的顶层,表示Excel自身的运行环境。
(2)Workbook对象:Workbook对象直接地处于Application 对象的下层,表示一个Excel工作薄文件。
(3)Worksheet对象:Worksheet对象包含于Workbook对象,表示一个Excel工作表。
(4)Range对象:Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。
(5)Cells对象:Cells对象包含于Worksheet对象,表示Excel 工作表中的一个单元格。
如果要启动一个Excel,使用Workbook和Worksheet对象,下面的代码启动了Excel并创建了一个新的包含一个工作表的工作薄:Dim zsbexcel As Excel.ApplicationSet zsbexcel = New Excel.Applicationzsbexcel.Visible = True如要Excel不可见,可使zsbexcel.V isible = Falsezsbexcel.SheetsInNewWorkbook = 1Set zsbworkbook = zsbexcel.Workbooks.Add2)设置单元格和区域值要设置一张工作表中每个单元格的值,可以使用Worksheet对象的Range属性或Cells 属性。
打印和打印预览功能今天,我们将制作一个能实现打印和打印预览功能的应用程序。
程序运行结果如图所示。
运行结果技术要点●打印预览功能的实现●打印功能的实现实现过程■新建项目打开Visual ,选择“新建项目”,在项目类型窗口中选择“Visual Basic项目”,在模板窗口中选择“Windows应用程序”,在名称域中输入“PrintExample”,然后选择保存路径。
单击“确认”。
■添加控件和设置属性向当前窗体上添加三个Button控件,将他们的Text属性改为和界面一致。
■添加组件类和要打印的文件通过菜单“项目|添加组件”为当前项目添加一个组件类,并添加一个需要打印的文件。
■添加代码'组件类中的代码Imports SystemImports ponentModelImports System.Windows.FormsImports System.DrawingImports System.Drawing.PrintingImports System.IONamespace Microsoft.Samples.WinForms.VB.PrintingExample5Public Class TextFilePrintDocumentInherits PrintDocumentPrivate printFont As FontPrivate streamToPrint As StreamReaderPublic Sub New(streamToPrint As StreamReader)MyBase.NewMe.streamToPrint = streamToPrintEnd SubOverrides Protected Sub OnBeginPrint(ev As PrintEventArgs)MyBase.OnBeginPrint(ev)printFont = new Font("Arial", 10)End Sub'Override the OnPrintPage to provide the printing logic for the documentOverrides Protected Sub OnPrintPage(ev As PrintPageEventArgs)MyBase.OnPrintPage(ev)Dim lpp As Single = 0Dim yPos As Single = 0Dim count As Integer = 0Dim leftMargin As Single = ev.MarginBounds.LeftDim topMargin As Single = ev.MarginBounds.TopDim line as String'Work out the number of lines per page'Use the MarginBounds on the event to do thislpp = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)'Check count first so that we don't read line that we won't printline=streamToPrint.ReadLine()While ((count < lpp) And Not(line Is Nothing))yPos = topMargin + (count * printFont.GetHeight(ev.Graphics))ev.Graphics.DrawString (line, printFont, Brushes.Black, leftMargin,yPos, new StringFormat())count = count + 1if (count < lpp) thenline=streamToPrint.ReadLine()end ifEnd WhileIf (line <> Nothing) Thenev.HasMorePages = TrueElseev.HasMorePages = FalseEnd IfEnd SubEnd ClassEnd Namespace'主窗体中的代码Imports SystemImports ponentModelImports System.Windows.FormsImports System.DrawingImports System.Drawing.PrintingImports System.IONamespace Microsoft.Samples.WinForms.VB.PrintingExample5Public Class PrintFormInherits System.Windows.Forms.FormPrivate storedPageSettings As PageSettingsPublic Sub New ()MyBase.NewPrintForm = MeInitializeComponent()AddHandler printButton.Click, AddressOf printButton_ClickAddHandler pageSetupButton.Click, AddressOf pageSetupButton_ClickAddHandler printPreviewButton.Click, AddressOfprintPreviewButton_ClickEnd Sub'页面设置Private Sub pageSetupButton_Click(sender As object, e As System.EventArgs)Dim psDlg As New PageSetupDialogIf (storedPageSettings Is Nothing) ThenstoredPageSettings = new PageSettings()End IfpsDlg.PageSettings = storedPageSettingspsDlg.ShowDialogCatch ex As ExceptionMessageBox.Show("An error occurred - " + ex.Message) End TryEnd Sub'开始打印Private Sub printButton_Click(sender As object, e As System.EventArgs) TryDim streamToPrint As StreamReader = new StreamReader("PrintMe.Txt")Try'使用缺省打印机Dim pd As TextFilePrintDocument = newTextFilePrintDocument(streamToPrint)If Not (storedPageSettings Is Nothing) Thenpd.DefaultPageSettings = storedPageSettingsEnd IfDim dlg As New PrintDialog()dlg.Document = pdDim result As DialogResult = dlg.ShowDialog()If (result = System.Windows.Forms.DialogResult.OK) Thenpd.Print()End IfFinallystreamToPrint.Close()End TryCatch ex As ExceptionMessageBox.Show("An error occurred printing the file - " +ex.Message)End TryEnd Sub'打印预览Private Sub printPreviewButton_Click(sender As object, e AsSystem.EventArgs)TryDim streamToPrint As StreamReader = new StreamReader("PrintMe.Txt")TryDim pd As TextFilePrintDocument = newTextFilePrintDocument(streamToPrint)If Not (storedPageSettings Is Nothing) Thenpd.DefaultPageSettings = storedPageSettingsEnd IfDim dlg As New PrintPreviewDialog()dlg.Document = pddlg.ShowDialog()FinallystreamToPrint.Close()End TryCatch ex As ExceptionMessageBox.Show("An error occurred - " + ex.Message) End TryPublic Overloads Overrides Sub Dispose()MyBase.Dispose()components.Dispose()End Sub<STAThread()> Shared Sub Main()System.Windows.Forms.Application.Run(New PrintForm())End SubEnd ClassEnd Namespace■运行程序单击菜单“调试|启动”或单击图标运行程序。
用VB操作Excel(VB6.0)(整理)用VB操作Excel(VB6.0)(整理)全面控制Excel:首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1)显示当前窗口:ExcelID.Visible:=True;2)更改Excel标题栏:ExcelID.Caption:='应用程序调用MicrosoftExcel';3)添加新工作簿:ExcelID.WorkBooks.Add;4)打开已存在的工作簿:ExcelID.WorkBooks.Open('C:\Excel\Demo.xls');5)设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或ExcelID.WorkSheets['Sheet2'].Activate;6)给单元格赋值:ExcelID.Cells[1,4].Value:='第一行第四列';7)设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth:=5;8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米9)在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak:=1;10)在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak:=0;11)指定边框线宽度:ExcelID.ActiveSheet.Range['B3:D4'].Borders[2].Weight:=3;1-左 2-右 3-顶4-底 5-斜(\) 6-斜(/)12)清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearContents;13)设置第一行字体属性:ExcelID.ActiveSheet.Rows[1]:='隶书'; ExcelID.ActiveSheet.Rows[1].Font.Color :=clBlue; ExcelID.ActiveSheet.Rows[1].Font.Bold :=True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine:=True;14)进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader:='报表演示'; b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter:='第&P页'; c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=2/0.035; d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=3/0.035; e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.T opMargin:=2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin:=2/0.035; g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin:=2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin:=2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally:=2/0.035; j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically:=2/0.035; k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines:=True;15)拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelID.ActiveSheet.Range['A1:E2'].Copy;c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.['A1'].PasteSpecial;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16)插入一行或一列:a.ExcelID.ActiveSheet.Rows[2].Insert;b.ExcelID.ActiveSheet.Columns[1].Insert;17)删除一行或一列:a.ExcelID.ActiveSheet.Rows[2].Delete;b.ExcelID.ActiveSheet.Columns[1].Delete;18)打印预览工作表:ExcelID.ActiveSheet.PrintPreview;19)打印输出工作表:ExcelID.ActiveSheet.PrintOut;20)工作表保存:IfnotExcelID.ActiveWorkBook.SavedthenExcelID.ActiveSheet.PrintPreviewEndif21)工作表另存为:ExcelID.SaveAs('C:\Excel\Demo1.xls');22)放弃存盘:ExcelID.ActiveWorkBook.Saved:=True;23)关闭工作簿:ExcelID.WorkBooks.Close;24)退出Excel:ExcelID.Quit;25)设置工作表密码:ExcelID.ActiveSheet.Protect"123",DrawingObjects:=True,Con tents:=True,Scenarios:=True26)EXCEL的显示方式为最大化ExcelID.Application.WindowState=xlMaximized27)工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState=xlMaximized28)设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook=329)'关闭时是否提示保存(true保存;false不保存)ExcelID.DisplayAlerts=False30)设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow=1ExcelID.ActiveWindow.FreezePanes=True31)设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows="$1:$1"32)设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns=""33)设置显示方式(分页方式显示)ExcelID.ActiveWindow.View=xlPageBreakPreview34)设置显示比例ExcelID.ActiveWindow.Zoom=10035)让Excel响应DDE请求Ex.Application.IgnoreRemoteRequests=False用VB操作EXCEL示例代码Private Sub Command3_Click()On Error GoTo err1Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer=11 '改变鼠标样式Set objExl=New Excel.Application'初始化对象变量objExl.SheetsInNewWorkbook=1 '将新建的工作薄数量设为1 objExl.Workbooks.Add'增加一个工作薄objExl.Sheets(objExl.Sheets.Count).Name="book1" '修改工作薄名称objExl.Sheets.Add,objExl.Sheets("book1")‘增加第二个工作薄在第一个之后objExl.Sheets(objExl.Sheets.Count).Name="book2"objExl.Sheets.Add,objExl.Sheets("book2")‘增加第三个工作薄在第二个之后objExl.Sheets(objExl.Sheets.Count).Name="book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i=1 To 50'循环写入数据For j=1 To 5If i=1 ThenobjExl.Selection.NumberFormatLocal="@" '设置格式为文本objExl.Cells(i,j)="E"&i&jElseobjExl.Cells(i,j)=i&jEndIfNextNextobjExl.Rows("1:1").Select '选中第一行objExl.Selection.Font.Bold=True '设为粗体objExl.Selection.Font.Size=24 '设置字体大小objExl.Cells.EntireColumn.AutoFit '自动调整列宽objExl.ActiveWindow.SplitRow=1 '拆分第一行objExl.ActiveWindow.SplitColumn=0 '拆分列objExl.ActiveWindow.FreezePanes=True '固定拆分objExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$1" '设置打印固定行objExl.ActiveSheet.PageSetup.PrintTitleColumns=""'打印标题objExl.ActiveSheet.PageSetup.RightFooter="打印时间:"&_ Format(Now,"yyyy年mm月dd日hh:MM:ss")objExl.ActiveWindow.View=xlPageBreakPreview'设置显示方式objExl.ActiveWindow.Zoom=100 '设置显示大小'给工作表加密码objExl.ActiveSheet.Protect"123",DrawingObjects:=True, _Contents:=True,Scenarios:=TrueobjExl.Application.IgnoreRemoteRequests=FalseobjExl.Visible=True '使EXCEL可见objExl.Application.WindowState=xlMaximized'EXCEL的显示方式为最大化objExl.ActiveWindow.WindowState=xlMaximized'工作薄显示方式为最大化objExl.SheetsInNewWorkbook=3 '将默认新工作薄数量改回3个Set objExl=Nothing'清除对象Me.MousePointer=0 '修改鼠标ExitSuberr1:objExl.SheetsInNewWorkbook=3objExl.DisplayAlerts=False '关闭时不提示保存objExl.Quit'关闭EXCELobjExl.DisplayAlerts=True '关闭时提示保存Set objExl=NothingMe.MousePointer=0End Sub。
VB中使用Picture控件实现打印预览一、 VB中为打印预览的缩放所做的准备要做打印预览缩放首先:1.新建一个窗体,并且把AutoRedraw属性设为True,因为预览中放大的预览窗体将超出父窗口,在使用滚动条时需要保证遮去(擦去)的文字和图像重画。
2.在预览窗体的属性窗口中Borderstyle属性设为0-None,BackColor属性为白色。
再给它做窗体边框,把DrawWidth=6,ForeColor=@H0(黑色),用Line方法画右边框和底边框这是做预览窗体的阴影。
设置DrawWidth=3,ForeColor=&HFF0000(蓝色),再用Line方法画窗体四周边框,使预览窗体象一张带阴影的白色纸张。
3.关于窗体宽、高与纸张实际宽、高的比例转换。
例如使用A4复印纸,宽210cm,高295cm,那么窗体上坐标比例用Preview.ScaleWidth/210,Preview.ScaleHeight/295反之在实际纸张上比例用210/ Preview.ScaleWidth,295/ Preview.ScaleHeight这样使预览窗体与实际纸张之间的完全吻合。
注意如果窗体的ScaleMode=2(磅),那么实际打印最好用ScaleMode=6(毫米)。
下面将讲到如何在预览和实际打印之间参数的传递。
二、VB中处理文字的预览和缩放预览用到窗体打印,例如:previewj.Height = preview.Height / 2preview.Width = preview.Width / 2w1 = preview.ScaleWidth / 210(比例)h1 = preview.ScaleHeight / 295(比例)Preview.CurrentX = 500Preview.CurrentY = 200Preview.Print "软件"这时坐标位置转换到小窗体上的比例,但是字体大小必需也要相应缩小,用FontSize设置相应小字号,这样才真正做到文字预览的缩放。
用VB操作Excel(VB6.0)(整理)用VB操作Excel(VB6.0)(整理)全面控制Excel:首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1)显示当前窗口:ExcelID.Visible:=True;2)更改Excel标题栏:ExcelID.Caption:='应用程序调用MicrosoftExcel';3)添加新工作簿:ExcelID.WorkBooks.Add;4)打开已存在的工作簿:ExcelID.WorkBooks.Open('C:\Excel\Demo.xls');5)设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或ExcelID.WorkSheets['Sheet2'].Activate;6)给单元格赋值:ExcelID.Cells[1,4].Value:='第一行第四列';7)设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth:=5;8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米9)在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak:=1;10)在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak:=0;11)指定边框线宽度:ExcelID.ActiveSheet.Range['B3:D4'].Borders[2].Weight:=3;1-左 2-右 3-顶4-底 5-斜(\) 6-斜(/)12)清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearContents;13)设置第一行字体属性:ExcelID.ActiveSheet.Rows[1]:='隶书'; ExcelID.ActiveSheet.Rows[1].Font.Color :=clBlue; ExcelID.ActiveSheet.Rows[1].Font.Bold :=True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine:=True;14)进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader:='报表演示'; b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter:='第&P页'; c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=2/0.035; d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=3/0.035; e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.T opMargin:=2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin:=2/0.035; g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin:=2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin:=2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally:=2/0.035; j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically:=2/0.035; k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines:=True;15)拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelID.ActiveSheet.Range['A1:E2'].Copy;c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.['A1'].PasteSpecial;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16)插入一行或一列:a.ExcelID.ActiveSheet.Rows[2].Insert;b.ExcelID.ActiveSheet.Columns[1].Insert;17)删除一行或一列:a.ExcelID.ActiveSheet.Rows[2].Delete;b.ExcelID.ActiveSheet.Columns[1].Delete;18)打印预览工作表:ExcelID.ActiveSheet.PrintPreview;19)打印输出工作表:ExcelID.ActiveSheet.PrintOut;20)工作表保存:IfnotExcelID.ActiveWorkBook.SavedthenExcelID.ActiveSheet.PrintPreviewEndif21)工作表另存为:ExcelID.SaveAs('C:\Excel\Demo1.xls');22)放弃存盘:ExcelID.ActiveWorkBook.Saved:=True;23)关闭工作簿:ExcelID.WorkBooks.Close;24)退出Excel:ExcelID.Quit;25)设置工作表密码:ExcelID.ActiveSheet.Protect"123",DrawingObjects:=True,Con tents:=True,Scenarios:=True26)EXCEL的显示方式为最大化ExcelID.Application.WindowState=xlMaximized27)工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState=xlMaximized28)设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook=329)'关闭时是否提示保存(true保存;false不保存)ExcelID.DisplayAlerts=False30)设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow=1ExcelID.ActiveWindow.FreezePanes=True31)设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows="$1:$1"32)设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns=""33)设置显示方式(分页方式显示)ExcelID.ActiveWindow.View=xlPageBreakPreview34)设置显示比例ExcelID.ActiveWindow.Zoom=10035)让Excel响应DDE请求Ex.Application.IgnoreRemoteRequests=False用VB操作EXCEL示例代码Private Sub Command3_Click()On Error GoTo err1Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer=11 '改变鼠标样式Set objExl=New Excel.Application'初始化对象变量objExl.SheetsInNewWorkbook=1 '将新建的工作薄数量设为1 objExl.Workbooks.Add'增加一个工作薄objExl.Sheets(objExl.Sheets.Count).Name="book1" '修改工作薄名称objExl.Sheets.Add,objExl.Sheets("book1")‘增加第二个工作薄在第一个之后objExl.Sheets(objExl.Sheets.Count).Name="book2"objExl.Sheets.Add,objExl.Sheets("book2")‘增加第三个工作薄在第二个之后objExl.Sheets(objExl.Sheets.Count).Name="book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i=1 To 50'循环写入数据For j=1 To 5If i=1 ThenobjExl.Selection.NumberFormatLocal="@" '设置格式为文本objExl.Cells(i,j)="E"&i&jElseobjExl.Cells(i,j)=i&jEndIfNextNextobjExl.Rows("1:1").Select '选中第一行objExl.Selection.Font.Bold=True '设为粗体objExl.Selection.Font.Size=24 '设置字体大小objExl.Cells.EntireColumn.AutoFit '自动调整列宽objExl.ActiveWindow.SplitRow=1 '拆分第一行objExl.ActiveWindow.SplitColumn=0 '拆分列objExl.ActiveWindow.FreezePanes=True '固定拆分objExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$1" '设置打印固定行objExl.ActiveSheet.PageSetup.PrintTitleColumns=""'打印标题objExl.ActiveSheet.PageSetup.RightFooter="打印时间:"&_ Format(Now,"yyyy年mm月dd日hh:MM:ss")objExl.ActiveWindow.View=xlPageBreakPreview'设置显示方式objExl.ActiveWindow.Zoom=100 '设置显示大小'给工作表加密码objExl.ActiveSheet.Protect"123",DrawingObjects:=True, _Contents:=True,Scenarios:=TrueobjExl.Application.IgnoreRemoteRequests=FalseobjExl.Visible=True '使EXCEL可见objExl.Application.WindowState=xlMaximized'EXCEL的显示方式为最大化objExl.ActiveWindow.WindowState=xlMaximized'工作薄显示方式为最大化objExl.SheetsInNewWorkbook=3 '将默认新工作薄数量改回3个Set objExl=Nothing'清除对象Me.MousePointer=0 '修改鼠标ExitSuberr1:objExl.SheetsInNewWorkbook=3objExl.DisplayAlerts=False '关闭时不提示保存objExl.Quit'关闭EXCELobjExl.DisplayAlerts=True '关闭时提示保存Set objExl=NothingMe.MousePointer=0End Sub。
VBA中的打印设置与批量打印技巧在Excel中,我们常常需要对工作表进行打印,打印设置的灵活性和批量打印的效率对于提高工作效率非常重要。
VBA (Visual Basic for Applications) 是一种可以在Microsoft Office套件中的各个应用程序中使用的编程语言,能够帮助我们自动化处理任务,包括打印设置和批量打印。
本文将介绍VBA中常用的打印设置以及一些实用的批量打印技巧,帮助您提高工作效率。
1. 打印设置VBA中的打印设置功能丰富,可以根据需求自定义打印页面、页眉页脚、打印区域等。
1.1 打印页面设置使用VBA,您可以轻松地对打印页面进行设置。
例如,您可以设置纸张大小、方向、边距等。
```vbaSub 页面设置()With ActiveSheet.PageSetup.PaperSize = xlPaperA4 ' 设置纸张大小为A4.Orientation = xlLandscape ' 设置横向打印.LeftMargin = Application.InchesToPoints(0.5) ' 设置左边距为0.5英寸.RightMargin = Application.InchesToPoints(0.5) ' 设置右边距为0.5英寸.TopMargin = Application.InchesToPoints(0.75) ' 设置上边距为0.75英寸.BottomMargin = Application.InchesToPoints(0.75) ' 设置下边距为0.75英寸 End WithEnd Sub```1.2 设置页眉页脚通过VBA,您可以在打印时添加页眉页脚,为打印内容提供更多信息。
```vbaSub 页眉页脚设置()With ActiveSheet.PageSetup.LeftHeader = "左侧页眉" ' 设置左侧页眉.CenterHeader = "中间页眉" ' 设置中间页眉.RightHeader = "右侧页眉" ' 设置右侧页眉.LeftFooter = "左侧页脚" ' 设置左侧页脚.CenterFooter = "中间页脚" ' 设置中间页脚.RightFooter = "右侧页脚" ' 设置右侧页脚End WithEnd Sub```1.3 打印区域设置有时候,我们不需要将整个工作表都打印出来,而只希望打印某个特定的区域。