文档库 最新最全的文档下载
当前位置:文档库 › 利用VB与Excel快速生成工艺卡片的方法

利用VB与Excel快速生成工艺卡片的方法

利用VB与Excel快速生成工艺卡片的方法
利用VB与Excel快速生成工艺卡片的方法

利用VB 与Excel 快速生成工艺卡片的方法

赵振江,祁和义

(开封大学机电工程学院,河南开封475004)

M ethod of Generat e Craft Cards Rapidly Using VB and Excel

ZHAO Zhen jiang,QI He yi

(Co llege o f Electro mechanical Engineer ing,Kaifeng U niversity,Kaifeng 475004,China)

摘要:介绍了一种利用VB 和Ex cel 快速生成CA PP 系统中各类工艺卡片的方法,此方法基于VB

对Excel 的二次开发,既简单方便,又极具通用性。

关键词:VB;Ex cel;工艺卡片;工作表中图分类号:T P391.13

文献标识码:A

文章编号:1001 2257(2008)05 0079 02收稿日期:2008 01 08

Abstract:T he paper introduced a m ethod to generate all kinds of craft car ds rapidly in CAPP system by using VB and Excel,the metho d make use of the secondary developm ent of Excel based on VB.It s not o nly very simple and convenient,but very g eneral as w ell.

Key words:V B;Ex cel;craft cards;w orksheet

0 引言

在进行CA PP 项目开发时,最终要生成多种工艺卡片。由于VB 具有极强的界面设计能力,且易学易用,支持面向对象、事件驱动、ActiveX 技术以及强大的数据库处理能力,很多用户喜欢用VB 作为CA PP 项目的开发语言。但VB 的表格处理能力一般,特别是处理复杂表格时,显得力不从心。而Excel 作为Microsoft 公司的表格处理软件有着强大的功能。为此,在充分利用VB 诸多优点的基础上,结合Ex cel 的表格处理能力,成功解决了CAPP 项目开发中复杂表格生成这一难题。

1 解决问题的思路与方法

首先利用VB 强大的界面设计能力,在其开发环境下用Label(标签)、T ex tbo x (文本框)、Ole(用

于嵌入图片)、MSFlex Grid(网格)等控件 画出!一张空白卡片,这张卡片是由各种控件组成的,可充分利用基于VB 的CAPP 系统强大的功能,进行卡片内容的快速填充和编辑,生成内容上完全符合实际需要的 准工艺卡!。由于其不是真正意义上的表格,而且目的在于利用CAPP 系统强大功能进行快速生成,所以并不适用于打印输出和实际生产。

利用Excel 强大的表格处理功能,根据需要事先设计出各种实用的空白工艺卡片模版,其表格组成应与VB 环境下对应的表格完全相同。实际使用时,只需调用需要的卡片模版,然后将CAPP 系统生成的工艺表格中相关控件的内容传入Ex cel 表格对应的单元格,即可生成真正意义上的工艺卡片。

2 V B 中各控件内容向Ex cel 表格中

的传送

由于Excel 应用程序是外部可创建对象,所以能从VB 应用程序内部来程序化操作Ex cel,方法是利用VB 的OLE 自动化技术获取Excel 的控制句柄,从而通过VB 直接控制Ex cel 的各种操作。由于对Excel 的操作都是在VB 的主界面下进行的,用户感觉就像使用VB 自己的表格一样,十分方便。2.1 利用VB 启动Excel 并打开对应的工作薄和表a.在工程中引用M icrosoft Ex cel 类型库。从VB 的 工程!菜单中选择 引用!栏,选中M icro soft Ex cel 11.0Object Library (Excel 2003),然后单击 确定!,表示在工程中引用Ex cel 类型库。

b.在通用对象的声明过程中定义Ex cel 对象。

Dim Ex App As Ex cel A pplicatio n Dim Ex Boo k As Excel Wor kBook Dim Ex Sheet As Excel Wor ksheet

c.在程序中打开已经存在的Ex cel 工件簿文件并设置活动工作表。

?

79?#机械与电子?2008(5)

Set Ex App=CreateObject("Ex cel.Applica tion")'创建Ex cel对象

Set ExBook=ExA pp.Wor kbooks.Open(" Excel工艺模版文件名")'打开工件簿文件

ExApp.V isible=True'设置Ex cel对象可见

Set Ex Sheet=ExBook.Wo rksheets("表名") '设置活动工作表

2.2 MSFlexGrid的文本向Excel单元格的传送

在CA PP项目开发中,工艺卡片中的主要内容是文本和图形。其中,VB环境下的文本内容主要存于文本框和MSFlex Grid网格控件中,其中又以MSFlex Grid网格控件为主。下面以VB的MS FlexGrid网格控件向Ex cel单元格传送文本为例,介绍通用的程序代码。

以下代码将M SFlex Grid1网格控件第1行、第1列至第1行、第4列的内容传送到Ex cel表的e1! ~h1!的单元格中。

i=1

For j=101T o104%101~104为字母e~h的ASCII码值

r=Chr(j)&i

ExSheet.Range(r).Value=M SFlex Gr id1. Tex tM atr ix(i,j-100)

Nex t j

2.3 VB中的图形向Excel单元格的传送

在CA PP项目中所使用的各种工艺图形,均以文件的形式进行保存,本文使用的图形文件为A u to CAD的dw g文件。若用变量Picture_name表示工艺卡片中插入的图形文件名(含路径),则可利用工作表的OLEObjects对象的Add方法,将此图形文件插入到Ex cel表格的某一单元格(如"a7")中,具体代码如下:

ExSheet.Range("a7").Activate

ExSheet.OLEObjects.Add(FileNam e:=Pic ture_nam e,Link:=False).Select

需要说明的是,插入到Ex cel表格中的图形大小,可能与Ex cel模版中设定的图形区域不一致,可以在预览时(此时可通过代码自动打开所生成的Excel工艺卡片)进行如下调整:选中卡片中插入的图形;单击右键,在快捷菜单中选择显示%图片 工具栏!;利用图片工具栏中的裁剪!和压缩图片!按钮,将图片调整到合适尺寸。2.4 已生成的Excel工艺表格的保存

以下代码将已生成的Ex cel工艺表格以文件的形式保存起来,供预览、打印及实际生产之用,并关闭Ex cel以及相应的工作薄和工作表。

Ex app.DisplayAlerts=False

Ex bo ok.Sav eAs("生成的Excel工艺表格文件名")

Ex bo ok.Close

Ex app.DisplayAlerts=True

Set Exboo k=Nothing

Set ExSheet=N othing

Set Exapp=Nothing

3 预览及打印功能的实现

在VB环境下,利用OLE容器控件,调用Cre ateLink方法可以在运行时从已生成的工艺卡片文件中创建一个链接对象[1],从而方便地打开已生成的Ex cel工艺表格,实现预览及打印,方法如下:在VB下建立一窗体(Name属性设置为FrmEx cel),在其上放置一OLE控件(Name属性设置为Ole1),然后在预览及打印菜单的相应事件过程中编写下列代码。

FrmEx cel.Ole1.CreateLink"生成的Excel工艺卡片文件名"

FrmEx cel.Ole1.Do Ver b%运行时激活对象

4 结束语

通过VB和Ex cel的有机结合,充分发挥各自软件的优势和特色,使编程更加简练、实用,使复杂的表格处理更加简便。

对于表格中的图形处理,由于采用了OLE技术,故表格中既可以插入常用的Auto CAD图形文件,也可以插入Pro E,So ldWor kS等图形文件,使用户对图形软件的选择处于完全开放的状态,极大地方便了用户。

参考文献:

[1] 六木工作室.Visual Basic6.0中文版实用编程技巧

[M].北京:人民邮电出版社,1999.

作者简介:赵振江 (1965-),男,河南济源人,副教授,研究方向为CAD/CAPP/CAM。

?

80

?#机械与电子?2008(5)

(新)vb程序调用excel数据

Visual Basic调用Excel之技巧吴声松 (湖北省水利水电勘测设计院地质大队湖北 430070) Visual Basic(以下简称VB)是一套可视化、面向对象、事件驱动方式的结构化程序设计语言,已经成为许多程序设计者甚至专业程序员用来开发WINDOWS应用程序的首选开发工具。但用过VB的程序设计人员都知道,要想用VB输出复杂的表格来,是十分困难的。能不能用VB调用EXCEL呢?Active技术标准为我们解决了这个问题。最近笔者为单位开发“土工试验数据整理”的某个模块时,涉及到复杂数据表格的输出问题,经过笔者的摸索,用VB调用EXCEL,取得了很好的效果。本文从编程实践的角度对使用VB控制EXCEL的技术作简要说明。 1 EXCEL的对象模型 如果一个应用程序支持自动化技术,那么其它的应用就可以通过其暴露的对象,对它进行控制,控制程序称为客户机,而被控制的一方就称为服务器,被控制的对象就是Active对象。VB正是通过EXCEL显露的各级对象来控制EXCEL工作的。每个对象都有各自的方法和属性,通过方法可以实现对对象的控制,而属性则可以改变对象的各种状态。 理解EXCEL的对象模型是对其编程的基础。EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素,这些对象元素就是VB可以操纵的。在EXCEL对象的层次结构中,最顶层是Application对象,是Excel本身。从该对象开始往下依次是: .workbooks对象集,是Application对象的下层,其指的是Excel的工作簿文件。 .worksheets对象集,是Workbooks对象集的下层,它表示的是Excel 的一个工作表。 .Cells和Range对象,它们是worksheets对象的下层,它则指向Excel 工作表中的一个或多个单元格。 以上介绍的四个对象是Excel中最重要也是用得最多的对象,而且从上面的介绍中也不难看出,要控制Excel中的某个具体对象,如某个工作簿中某一表格中的单元格,就必须从Excel层次结构对象的最上层即Application对象开始遍历。 2 Excel对象的使用

VB中对EXCEL的操作

全面控制Excel 首先创建Excel 对象,使用ComObj: Dim ExcelID as Excel.Application Set ExcelID as new Excel.Application 1) 显示当前窗口: ExcelID.Visible := True; 2) 更改Excel 标题栏: ExcelID.Caption := '应用程序调用Microsoft Excel'; 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]https://www.wendangku.net/doc/e0411088.html, := '隶书'; 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;

用VB操作excel方法汇总

用VB操作excel方法汇总 Private Sub Command3_Click() Dim i As Long Dim j As Long Dim 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 '选中工作薄 For i = 1 To 50 '循环写入数据 For j = 1 To 5 If i = 1 Then objExl.Selection.NumberFormatLocal = "@" '设置格式为文本 objExl.Cells(i, j) = " E " & i & j Else objExl.Cells(i, j) = i & j End If Next Next objExl.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 = "打印时间: " & _ For mat(Now, "yyyy年mm月dd日 hh:MM:ss") objExl.ActiveWindow.View = xlPageBreakPreview '设置显示方式 objExl.ActiveWindow.Zoom = 100 '设置显示大小 '给工作表加密码 objExl.ActiveSheet.Protect "123", DrawingObjects:=True, _ Contents:=True, Scenarios:=True objExl.Application.IgnoreRemoteRequests = False

VB中使用EXCEL输出

Private Sub cmdSwatch_Click() Dim xls As excel.Application Dim xlbook As excel.Workbook 'On Error GoTo exlError Dim i As Integer If Dir(Text1.Text) <> "" Then '此目录下如有同名文件给出提示,并作相应处理 If MsgBox("文件已存在,是否覆盖!", vbYesNo + vbQuestion, "另存为工程造价文件") = vbNo Then Exit Sub Else Kill (Text1.Text) '删除文件 End If End If '************打开工作表*************** Set xls = New excel.Application xls.Visible = True Set xlbook = xls.Workbooks.Add '********************************* For i = 0 To 14 If Check2(i).Value = vbChecked Then Select Case i Case 8 ToExcelJDanJiaSum.ToExcelJDanJiaSum xlbook, xls Case 9 ToExcelADanJiaSum.ToExcelADanJiaSum xlbook, xls Case 10 ToExcelCailiao.ToExcelCailiao xlbook, xls

Case 11 ToExcelTsf.ToExcelTsf xlbook, xls Case 12 ToExcelZgcl.ToExcelZgcl xlbook, xls End Select End If Next For i = 0 To 6 If Check3(i).Value = vbChecked Then Select Case i Case 0 ToExcelMan.ToExcelMan xlbook, xls Case 1 ToExcelFSD_CL.ToExcelFSD_CL xlbook, xls Case 2 ToExcelHNT.ToExcelHNT xlbook, xls Case 3 ToExcelZsf.ToExcelZsf xlbook, xls Case 4 ToExcelJingChang.ToExcelJingChang xlbook, xls Case 5 ToExcelJDanJia.ToExcelJDanJia xlbook, xls Case 6 ToExcelADanJia.ToExcelADanJia xlbook, xls End Select End If Next xlbook.SaveAs Text1.Text '保存EXCEL文件

VB编程在Excel中的应用

EXCEL 编程(VBA) Excel 最重要的应用就是利用公式进行计算。无论输入是纯粹的数字运算,还是引用其他单元格计算,只要在一个单元格中输入公式,就能得到结果。这个直接显示结果的设计对于绝大多数场合来说都是适用的,但某些情况下就不那么让人满意了。比如说在做工程施工的预结算编写,使用Excel,既要写出工程量的计算式,也要看到它的结果,于是这样相同的公式在Excel里面要填两次,一次在文本格式的单元格中输入公式,一次是在数据格式的单元格中输入公式让Excel计算结果。如何既能看到公式又能看到结果呢?这个问题笔者认为可以从两个方面考虑:一种方法是所谓“已知结果,显示公式”,先在数据格式单元格中输入公式让Excel计算结果,然后在相邻的单元格中看到公式;另一种方法所谓“已知公式,显示结果”,就是先在一个文本格式的单元格中输入公式,在相邻的单元格中看到结果。 ★ 已知结果,显示公式 假设C列为通过公式计算得到的结果(假设C1为“=A1+B1”,或者直接是数字运算“=2+3”),而相邻的D列是你需要显示公式的地方(即D1应该显示为“=A1+B1”或者“=2+3”)。 1. 打开“工具”菜单选择“选项”命令,出现“选项”对话框。 2. 在“常规”选项卡中,选中“R1C1引用方式”选项。 3. 定义名称,将“引用位置”由“=GET.CELL(6,Sheet1!RC[-1])”即可。这里的RC[-1]含义是如果在当前单元格的同行前一列单元格中有公式结果,则在当前单元格中得到公式内容,即在含公式结果单元格的同行后一列单元格显示公式内容;如果将RC[-1]改为RC[1],则在公式结果的同行前一列单元格显示公式内容。 4. 如果“引用位置”中含有“RC[-1]”,则在含公式结果单元格的同行后一列单元格中输入“=FormulaofResult”即可得到公式;如果“引用位置”中含有“RC[1]”,则在含公式结果单元格的同行前一列单元格中输入“=FormulaofResult”即可得到公式。 提示:如果想要在含公式结果单元格的同行后数第2列中显示公式内容,则需要把“引用位置”中的“RC -1 ”改为“RC -2 ”。 ★已知公式,显示结果 假设C列为输入的没有等号公式(假设C1为“A1+B1”),而相邻的D列是你需要存放公式计算结果的地方(即D1显示A1和B1单元格相加的结果)。 1. 选中D1,然后打开“插入”菜单选择“名称”命令中的“定义”子命令,出现“定义名称”对话框。 2. 在“在当前工作表中的名称”输入栏中输入定义的名称“ResultofFomula”,在下方的“引用位置”编辑栏中输入“=EVALUATE(Sheet1!C1)”,单击[确认]按钮退出。 3. 在 D1中输入“=ResultofFomula”,然后选中按住右下角的填充柄向下拉动填充即可。 提示:EVALUATE 是Eexcel 4.0版的宏表函数,Excel 2000和Excel 2002中 还支持,但只可用于名称定义中。 4. 填充后要按[F9]进行重算,如果C列的公式有改动,也需要及时按[F9]进行

怎样实现用VB对EXCEL的操作

用VB操作excel方法 Private Sub Command3_Click() Dim i As Long Dim j As Long Dim 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'选中工作薄 For i=1To50'循环写入数据 For j=1To5 If i=1Then objExl.Selection.NumberFormatLocal="@"'设置格式为文本 objExl.Cells(i,j)="E"&i&j Else objExl.Cells(i,j)=i&j End If Next Next objExl.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="打印时间:"&_ For mat(Now,"yyyy年mm月dd日hh:MM:ss") objExl.ActiveWindow.View=xlPageBreakPreview'设置显示方式 objExl.ActiveWindow.Zoom=100'设置显示大小 '给工作表加密码 objExl.ActiveSheet.Protect"123",DrawingObjects:=True,_ Contents:=True,Scenarios:=True objExl.Application.IgnoreRemoteRequests=False objExl.Visible=True'使EXCEL可见

VB操作Excel实现读取写入打印

VB操作EXCEL,实现数据写入以及数据组合 1】定义EXCEL的一系列操作 Dim xlApp As Excel.Application Dim ExcelShowStr As String Set xlApp = CreateObject("Excel.Application") xlApp.Visible = true AppLogFile.WriteLine (CStr(Date) & "_" & CStr(Time) & ":Set xlApp=new Excel.Application") Dim xlBook As Workbook Dim xlSheet As Worksheet Dim xlrow, sheetIndex, sheetColumn As Integer 'fileurl ="D:\VB英迈\Template\WriteData.xls" Editable=空值 Set xlBook = xlApp.Workbooks.Open(fileUrl, Editable) '打开EXCEL模板 Set xlSheet = xlApp.ActiveSheet -------------------------------------------------------------------------------------------- 【2】写入数据的操作 xlSheet.Range(xlSheet.Cells(beginRow, 1), xlSheet.Cells(endRow - 1, 1)).Merge '合并单元格 xlSheet.Cells(beginRow, 1).FormulaR1C1 = CustName '单行插入 xlSheet.Cells(beginRow, 1).V erticalAlignment = xlTop '垂直,写入数据的位置,这里为高 xlSheet.Cells(beginRow, 2).HorizontalAlignment = xlHAlignCenter '水平写入数据的位置,这里为居中 xlSheet.Range(xlSheet.Cells(beginRow, 1), xlSheet.Cells(endRow - 1, 19)).Font.ColorIndex = ConstModule.COLOR_BLUE '单元格的字体颜色xlSheet.Range(xlSheet.Cells(beginRow, 1), xlSheet.Cells(endRow - 1, 19)).Font.Bold = True '单元格的数据为粗体显示

VB将数据导出到EXCEL

'************************************************************************* '** '** VB将数据导出到EXCEL,没有安装EXCEL的一样也可以导出. '** '** 调用方式: s_Export2Excel(Ado.Recordset) 或s_Export2Excel(Rds.RecordSet) '** 支持Rds 与Ado 的记录导出 '** '************************************************************************* '得到所有数据类型,有些数据类型EXCEL不支持,已经替换掉 Public Function f_FieldType$(ByVal sType&) Dim iRe$ Select Case sType Case 2, 3, 20 iRe = "int " Case 5 iRe = "float " Case 6 iRe = "money " Case 131 iRe = "numeric " Case 4 iRe = "real " Case 128 iRe = "binary " Case 204 iRe = "varbinary " Case 11 iRe = "bit " Case 129, 130 iRe = "char " Case 17, 72, 131, 200, 202, 204 iRe = "varchar " Case 201, 203 iRe = "text " Case 7, 135 iRe = "datetime " Case 205 iRe = "image " Case 128 iRe = "timestamp " End Select f_FieldType = iRe

VB6[1].0_导出excel_方法源代码

往链点点通共享资源,了解更多请登录https://www.wendangku.net/doc/e0411088.html, VB6.0 导出excel 方法源代码 方法一: 用Msflexgrid的Textmatrix属性取Msflexgrid中每一个单元格的内容,然后填到Excel表中,或者写成CSV格式 方法二: 直接把查询结果导出成Excel工作表 Public Sub Export(formname As Form, flexgridname As String) Dim xlApp As Object 'Excel.Application Dim xlBook As Object 'Excel.Workbook Dim xlSheet As Object 'Excel.Worksheet Screen.MousePointer = vbHourglass On Error GoTo Err_Proc Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) 'Begin to fill data to sheet Dim i As Long Dim j As Integer Dim k As Integer With formname.Controls(flexgridname) For i = 0 To .rows - 1 k = 0 For j = 0 To .Cols - 1 If .colwidth(j) > 20 Or .colwidth(j) < 0 Then k = k + 1 xlSheet.Cells(i + 1, k).Value = "'" & .TextMatrix(i, j) End If Next j Next i End With xlApp.Visible = True Screen.MousePointer = vbDefault Exit Sub Err_Proc: Screen.MousePointer = vbDefault MsgBox "请确认您的电脑已安装Excel!", vbExclamation,"提示"

用VB操作EXCEL(VB6.0)(整理)

用VB操作Excel(VB6.0)(整理)全面控制Excel: 首先创建Excel对象,使用ComObj: Dim ExcelID as Excel.Application Set ExcelID as new Excel.Application 1)显示当前窗口: 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;

VB程序导出数据到Excel

vb导出数据到Excel Public Function ExporToExcel(strOpen As String,cn As ADODB.Connection) '入参为SQL查询语句,cn为当前活动的连接 '********************************************************* '* 名称:ExporToExcel '* 功能:导出数据到EXCEL '* 用法:ExporToExcel(sql查询字符串) '********************************************************* Dim Rs_Data As New ADODB.Recordset Dim Irowcount As Integer Dim Icolcount As Integer Dim FILENAME As String Dim xlApp As New Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim xlQuery As Excel.QueryT able With Rs_Data If .State = adStateOpen Then .Close End If .ActiveConnection = Cn .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockReadOnly .Source = strOpen .Open End With With Rs_Data If .RecordCount < 1 Then MsgBox ("没有记录!") Exit Function End If '记录总数 Irowcount = .RecordCount '字段总数 Icolcount = .Fields.Count End With Set xlApp = CreateObject("Excel.Application") Set xlBook = Nothing Set xlSheet = Nothing

vb读取excel数据

取得excel文件所有内容: 'add microsoft ado frist. Private Sub Command2_Click() Dim adoConnection As New ADODB.Connection Dim adoRecordset As New ADODB.Recordset CommonDialog1.ShowOpen 'OLE DB + ODBC Driver 方式: 'adoConnection.Open "Data Provider=MSDASQL.1;driver=Microsoft Excel Driver (*.xls);DBQ=e:\temp\book2.xls" 'Microsoft.Jet.OLEDB.4.0 方式,(建?) adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & CommonDialog1.FileName & ";Extended Properties='Excel 8.0;HDR=Yes'" adoRecordset.Open "select * from [sheet1$]", adoConnection, adOpenKeyset, adLockOptimistic Debug.Print adoRecordset.RecordCount Dim i As Integer Do Until adoRecordset.EOF For i = 0 To adoRecordset.Fields.Count - 1 Debug.Print adoRecordset.Fields.Item(0).Name Debug.Print adoRecordset.Fields.Item(0).Value Next i adoRecordset.MoveNext Loop End Sub 但还不知道如何取得sheet名,不好意思,那位老鸟知道请告知,谢谢 sheet名用Excel.Application对象 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Set xlApp = New Excel.Application Set xlBook = xlApp.Workbooks.Open("C;\123.xls")) For i = 1 To intSheetSum strTemp=xlBook.Worksheets(i).name Next i Dim xlsconn As New ADODB.Connection

VB读取excel表

我给你个简单的例子,假设有文件"c:\1.xls" '要在VB中操作Excel,需要引用Excel对象模型 '方法,在菜单里选择[工程] -- [引用],在窗口里勾选Microsoft Excel XX.X Object Library '其中,XX.X取决于你安装的Office的版本号 Private Sub Command6_Click() Dim excel_App As Excel.Application Dim excel_Book As Excel.Workbook Dim excel_sheet As Excel.Worksheet '启动Excel Set excel_App = CreateObject("Excel.Application") '引用程序对象实例 '设置Excel为不可见 excel_App.Visible = False '打开文件 Set excel_Book = excel_App.Workbooks.Open("C:\1.XLS") '工作簿实例Set excel_sheet = excel_Book.Worksheets("Sheet1") '数据表实例excel_sheet.Range("C1").Value = "你好!" '设置单元格C1的值为"你好!" excel_sheet.Range("A1").Value = 100 '设置单元格A1的值为100 excel_sheet.Range("A2").Value = 9 '设置单元格A2的值为9 excel_sheet.Range("A3").Value = excel_sheet.Range("A1").Value + excel_sheet.Range("A2").Value '计算 ''''''''''''''''''''''''''''''''''' '关闭Excel文件 Set excel_sheet = Nothing excel_App.ActiveWorkbook.Close savechanges:=True '保存对EXCELL进行更改。 Set excel_Book = Nothing excel_App.Quit Set excel_App = Nothing End Sub 追问 你好,高手! 我的想法是这样的,编一个软件,这个软件用excel表格当做它的数据库。这个软件只能对表格进行读写操作。比如: 当text1读入A行a内容时,text2自动读取A行b内容,代码里不要对表格进行赋值。 69978084

excel宏教程-VB汇总

Excel宏教程 一、选中单个单元格 Range(“<单元格地址>“).Select 例:Range("C9").Select …选中“C9”单元格 二、选中多个单元格 Range(“<单元格地址>:<单元格地址>[,<单元格地址>……]”).Select 例:Range(“A1:B2”).Select…选中“A1”、“A2”、“B1”、“B2”四个连续的单元格Range(“12:12”).Select…选中第12行 Range(“B:B”).Select…选中第B列 Range(“A1:A2,B7,2:2”).Select…选中“A1”、“A2”、“B7”五个不连续的单元格和第二行Cells.Select …选中当前SHEET中的所有单元格 Rows("<行地址>:<行地址>").Select …选中整行 Columns("<列地址>:<列地址>").Select …选中整列 例:Rows(“2:2”). Select…选中第2行 Rows(“2:5”). Select…选中2到5行 Columns("A:A").Select …选中A列 Columns("E:B").Select …选中E到B列

三、设置活动单元格 Range("<单元格地址>").Activate 注:设置活动单元格与选中单元格类似,不同之处就是 后者在选中指定的单元格之前会将在此前已被选中的单元格取消掉。 前者在设置之前不会取消已选中的单元格, 如果此时操作的单元格不是被选中的单元格,这时他实现的功能与选一个单元格相同。 四、给活动的单元格赋值 ActiveCell.FormulaR1C1 = <值> 例:Range("A1").Select ActiveCell.FormulaR1C1 = "Name" Range("B1").Select ActiveCell.FormulaR1C1 = "Age" Range("A2:B3").Select Range("A2").Activate ActiveCell.FormulaR1C1 = " BUG" Range("B2").Activate ActiveCell.FormulaR1C1 = "12" Range("A3").Activate ActiveCell.FormulaR1C1 = "Archer" Range("B3").Activate ActiveCell.FormulaR1C1 = "37"

VB处理EXCEL数据方法

在VB中要想调用Excel,需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“Microsoft Excel 11.0 object library”项。由于你的Excel 版本不同,所以这个选项的版本号也是不同的。 因为EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。 第一层:Application对象,即Excel本身; 第二层:workbooks对象集,指Excel的工作簿文件; 第三层:worksheets对象集,表示的是Excel的一个工作表; 第四层:Cells和Range对象,指向Excel工作表中的单元格。 新建立一个VB的工程,先放一个button,名称为Excel_Out。先定义好各层: Dim xlapp As Excel.Application 'Excel对象 Dim xlbook As Excel.Workbook '工作簿 Dim xlsheet As Excel.Worksheet '工作表 我们打算做的是:打开/新建一个excel,在其中对某工作表的一些单元格修改其值,然后另存为test.xls文件。 Private Sub Excel_Out_Click() Dim i, j As Integer Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象 'Set xlbook = xlapp.Workbooks.Open(App.Path & "\test.xls") '打开已经存在的test.xls工件簿文件 Set xlbook = xlapp.Workbooks.Add '新建EXCEL工件簿文件 'xlbook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏 'xlbook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏 xlapp.Visible = True '设置EXCEL对象可见(或不可见) Set xlsheet = xlbook.Worksheets(1) '设置活动工作表'' ''~~~当前工作簿的第一页,这里也可以换成“表名” '下面就是简单的在一些单元格内写入数字 For i = 7 To 15 For j = 1 To 10 xlsheet.Cells(i, j) = j '当前工作簿第一页的第I行第J列 Next j Next i With xlsheet '设置边框为是实线 .Range(.Cells(7, 1), .Cells(28, 29)).Borders.LineStyle =

VB打开EXCEL地方法..

VB打开EXCEL的方法 一楼的没有指明 Dim xlBook As Excel.WorkBook Set xlBook = App.Workbooks.Open("文件名") 这种语法同样要求excel已经存在才能操作。 Public xlApp As Excel.Application Public xlBook As Excel.Workbook Public xlChar As New Excel.Chart Public xlSheet As New Excel.Worksheet Set xlApp = New Excel.Application Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets.Add xlSheet.Cells(1, 1) = "测试" '写入内容 xlBook.SaveAs ("FILENAME") '保存文件 xlApp.Quit Set xlApp = Nothing 本方法采用add添加excel文件和datasheet,然后用save保存。如果用xlA pp.Visible=False,则自动生成文件。但是如果文件已经存在,则会弹出是否覆盖的提示。因此,最好先在程序中检查文件是否已经存在,如果存在,则用普通方法打开。如果不存在,则用add添加,并保存。

★打开相对路径下的文件 Private Sub Command1_Click() Shell App.Path & "\aaa.bat" End Sub 还有更简单的: Private Sub Command1_Click() Shell "aaa.bat" End Sub aaa.bat就是那个BAT的名字. 那就不一定...... 因为SHELL只对可执行文件有效.你可用WINDOWS外壳程序explorer.exe打开任何文件(包括文件夹) 代码: Private Sub Command1_Click() Shell "explore.exe aaa.jpg" End Sub

用VB操作Excel(VB6.0)(整理)

用V B操作E x c e l(V B6.0)(整理) 全面控制Excel: 首先创建Excel对象,使用ComObj: Dim ExcelID as Excel.Application Set ExcelID as new Excel.Application ? 1)显示当前窗口: ? ExcelID.Visible:=True; 2)更改Excel标题栏: ? ExcelID.Caption:='应用程序调用MicrosoftExcel'; 3)添加新工作簿: 4)打开已存在的工作簿: 5)设置第2个工作表为活动工作表:

? ExcelID.WorkSheets[2].Activate; 或ExcelID.WorkSheets['Sheet2'].Activate; 6)给单元格赋值: ? ExcelID.Cells[1,4].Value:='第一行第四列'; 7)设置指定列的宽度(单位:字符个数),以第一列为例: 8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例: 9)在第8行之前插入分页符: ? ExcelID.WorkSheets[1].Rows[8].PageBreak:=1; 10)在第8列之前删除分页符: 11)指定边框线宽度: ? 1-左 2-右 3-顶4-底 5-斜(\) 6-斜(/)

12)清除第一行第四列单元格公式: 13)设置第一行字体属性: 14)进行页面设置: a.页眉: b.页脚: c.页眉到顶端边距2cm: d.页脚到底端边距3cm:

e.顶边距2cm: f.底边距2cm: g.左边距2cm: h.右边距2cm: i.页面水平居中:j.页面垂直居中:k.打印单元格网线:

相关文档