excelvba实例教程#054:导出工作表中的图片

excelvba实例教程#054:导出工作表中的图片
excelvba实例教程#054:导出工作表中的图片

有时需要将工作表中的图形对象保存为单独的图像文件,可以使用Export方法将工作表中的图片以文件形式导出,如下面的代码所示。

1.Sub ExportShp()

2. Dim Shp As Shape

3. Dim FileName As String

4. For Each Shp In

5.If = msoPicture Then

6.FileName = & "\" & & ".gif"

7.

8.With 0, + 28, + 30).Chart

9. .Paste

10. .Export FileName, "gif"

11. .

12.End With

13.End If

14. Next

15.End Sub

代码解析:

ExportShp过程将Sheet1工作表的所有图片以文件形式导出到同一目录中。

第4行代码使用For Each...Next 语句遍历Sheet1工作表中的所有图形。

第5行代码判断图形的类型是否为图片,应用于Shape对象的Type属性返回或设置图形类型,可以为表格 1所示的

表格 1 MsoShapeType常量

第6行代码使用字符串变量FileName记录需导出图形的路径和名称。

第7行代码复制图形,应用于Shape对象的Copy方法将对象复制到剪贴板。

第8行代码使用Add方法在工作表中添加一个图表,应用于ChartObjects对象的Add 方法创建新的嵌入图表,语法如下:(Left, Top, Width, Height)

参数expression是必需的,返回一个ChartObjects对象。

参数Left、参数Top是必需的,以磅为单位给出新对象的初始坐标,该坐标是相对于工作表上单元格A1的左上角或图表的左上角的坐标。

参数Width、参数Height是必需的,以磅为单位给出新对象的初始大小。

第9行代码使用Paste方法将图形粘贴到新的嵌入图表中,应用于Chart对象的Paste方法将剪贴板中的图表数据粘贴到指定的图表中,语法如下:

(Type)

参数expression是必需的,返回一个Chart对象。

参数Type是可选的的,如果剪贴板中有图表,本参数指定要粘贴的图表信息。可为以下XlPasteType常量之一:xlFormats、xlFormulas或xlAll。默认值为xlAll,如果剪贴板中是数据不是图表,则不能使用本参数。

第10行代码使用Export方法将图表导出到同一目录中,应用于Chart对象的Export方法以图形格式导出图表,语法如下:(Filename, FilterName, Interactive)

其中参数Filename是必需的,被导出的文件的名称。

第10行代码删除新建的图表。因为Chart对象是不能使用Delete方法直接删除的,应先使用Parent属性返回指定对象的父对象,然后使用Delete方法删除。

Excel VBA实例教程 #055:在工作表中添加艺术字

工作表中的多个图形,如果使用系统缺省名称,如“文本框1”、“文本框2”这样前面是固定的字符串,后面是序号的,可以使用For...Next 语句遍历图形,如下面的代码所示。 1.Sub ErgShapes_1() 2. Dim i As Integer 3. For i = 1 To 4 4. Sheet1.Shapes("文本框 " & i).TextFrame.Characters.Text = "" 5. Next 6.End Sub 代码解析: ErgShapes_1过程清除工作表中四个图形文本框中的文字。 第3行到第5行代码,使用Shapes属性在工作表上的三个图形文本框中循环。 Shapes属性返回Shapes对象,代表工作表或图形工作表上的所有图形,可以使用Shapes (index)返回单个的Shape对象,其中index是图形的名称或索引号。 返回单个的Shape对象后使用TextFrame 属性和Characters方法清除文本框中的字符,关于Shape对象的TextFrame 属性和Characters方法请参阅技巧53 。 如果图形的名称没有规律,可以使用For Each...Next 语句循环遍历所有图形,根据Type 属性返回的图形类型进行相应的操作,如下面的代码所示。 1.Sub ErgShapes_2() 2. Dim myShape As Shape 3. Dim i As Integer 4. i = 1 5. For Each myShape In Sheet1.Shapes 6. If myShape.Type = msoTextBox Then 7. myShape.TextFrame.Characters.Text = "这是第" & i & "个文本框" 8. i = i + 1 9. End If 10. Next 11.End Sub 代码解析: ErgShapes_2过程在工作表中的所有图形文本框中写入文本。 第5行代码使用For Each...Next 语句循环遍历工作表中所有的图形对象。 第6行到第9行代码如果图形对象是文本框则在文本框中写入文本。其中第6行代码根据Type属性判断图形对象是否为文本框,应用于Shape对象的Type属性返回或设置图形类型,MsoShapeType类型,请参阅表格54 1 。 第7行代码根据返回的Type属性值在所有的文本框内写入相应的文本,如图1所示。

PB操作Excel文件

PB调用EXCEL的操作不失为一种好的报表输出方式 2009-05-15 23:17 928人阅读评论(0) 收藏举报对于较为中国化的报表,虽然后dw这个坚强后盾,但是也难不住繁复疲劳的应对。 不过我们可以知道,数据的输出,都是居于table的栏位或者计算字段。只是很多统计的模式和展现模式不同。 我在一年前作完一个系统,可是客户几乎隔三差五有新的东东要输出报表。终于我发现。让客户先在excel里弄好,然后再写程序来输出也是一个不错的方法。关键是,客户给的东西不必要再进自己的系统,所以数据不会发生什么问题。如果本身软件有任何问题,那能从excel里的写的结果很容易看得出来。虽然写excel表格要花很多时间,但是减少了输入导入和输出的一些麻烦。 转载excel操作大全: powerbuilder操作excel命令大全(例子的有些地方不对!) 2006-12-04 16:43 1.创建Excel对象 eole=CREATEOBJEC T(′Excel.application′) 2.添加新工作簿 eole.Workbooks.add 3.设置第3个工作表为激活工作表 eole.Worksheets(″sheet3″).Activate 4.打开指定工作簿 eole.Workbooks.Open(″c:/temp/ll.xls″) 5.显示Excel窗口 eole.visible=.t. 6.更改Excel标题栏 eole.Caption=″VFP应用程序调用Microsoft Excel″ 7.给单元格赋值 eole.cells(1,4).value=XM(XM为数据库字段名)

Excel_VBA实例教程_查找单元格

Excel VBA实例教程查找单元格 1、使用Find方法 在Excel中使用查找对话框可以查找工作表中特定内容的单元格,而在VBA中则使用Find方法,如下面的代码所示。 01.Sub RngFind() 02. Dim StrFind As String 03. Dim Rng As Range 04. StrFind = InputBox("请输入要查找的值:") 05. If Trim(StrFind) <> "" Then 06. With Sheet1.Range("A:A") 07. Set Rng = .Find(What:=StrFind, _ 08. After:=.Cells(.Cells.Count), _ 09. LookIn:=xlValues, _ 10. LookAt:=xlWhole, _ 11. SearchOrder:=xlByRows, _ 12. SearchDirection:=xlNext, _ 13. MatchCase:=False) 14. If Not Rng Is Nothing Then 15. Application.Goto Rng, True 16. Else 17. MsgBox "没有找到该单元格!" 18. End If 19. End With 20. End If 21.End Sub 代码解析: RngFind过程使用Find方法在工作表Sheet1的A列中查找InputBox函数对话框中所输入的值,并查找该值所在的第一个单元格。 第6到第13行代码在工作表Sheet1的A列中查找InputBox函数对话框中所输入的值。应用于Range 对象的Find方法在区域中查找特定信息,并返回Range对象,该对象代表用于查找信息的第一个单元格。如果未发现匹配单元格,就返回Nothing,语法如下: 01.expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SerchFormat) 复制代码参数expression是必需的,该表达式返回一个Range对象。 参数What是必需的,要搜索的数据,可为字符串或任意数据类型。 参数After是可选的,表示搜索过程将从其之后开始进行的单元格,必须是区域中的单个单元格。查找时是从该单元格之后开始的,直到本方法绕回到指定的单元格时,才对其进行搜索。如果未指定本参数,搜索将从区域的左上角单元格之后开始。 在本例中将After参数设置为A列的最后一个单元格,所以查找时从A1单元格开始搜索。 参数LookIn是可选的,信息类型。 参数LookAt是可选的,可为XlLookAt常量的xlWhole 或xlPart之一。 参数SearchOrder是可选的,可为XlSearchOrder常量的xlByRows或xlByColumns之一。 参数SearchDirection是可选的,搜索的方向,可为XlSearchDirection常量的xlNext或xlPrevious 之一。

excel学习笔记

By8305樊斌老师 ERP(标准化业务) Excel(非标准化业务):个性化事情流程标准化 基于会计解决问题的角度,工作能力。 数据是C公司上半年销售情况统计,本案例要求综合运用所学知识分别从产品销售情况和员工销售业绩两个维度对销售数据进行整理和评估分析。 1、销售数据整理与分析 (1)利用超级透视表的合并查询功能(或者是用pp中建模后再关联)进行关联,填充销售明细表 (2)制作透视表分析销售数据 2、销售业绩数据整理与分析 (1)对员工销售业绩汇总和排名 (2)利用countifs和排名函数填写按月统计表 (3)利用透视表对部门销售情况进行分析 (4)利用透视表特殊功能发奖金(备注:计算字段和计算项、色阶、以中间人为标杆、切片器、表格和透视表动态联动) (5)查询销售人员的情况(有效性设置与建模辅助工具的运用) 3、财务分析工具的运用 (1)运用模拟预测表进行销售预测分析 (2)运用规划求解销售数量 创新点: (1)将公司的销售数据从人力和物力(即产品)两个角度充分挖掘数据信息。 (2)穿插超级透视表,灵活运用函数功能 (3)加入各种细小的高级功能,比如查询系统、按钮、有效性设置等 (4)实现财务分析工具的综合运用,有一定难度 第二节课 电子报表产品 地址:两个案例。 2、折旧法: 直线法=SLN(原值,残值,使用期限) 年数总和法=SYD(原值,残值,使用期限,第几期) 双倍余额递减法=VDB(原值,残值,使用期限,起始期,截止期,折旧因子,转直开关0) 3、复利终值系数表 三维地址高效编汇总表:shift 四维地址:跨表 第三节课(透视表) 对数据清单进行多维统计分析 财务会计向管理会计(非财务)转型:财务指标是滞后的。项目决策的话语权。 数据、工具运用、idea

pb与excel之间导入导出处理

pb与excel之间导入导出处理 gf_save_excel_to_txt(as_excel_filename string,as_text_filename string) //把文件名为as_excel_filename的Excel文件另存为文件名为as_text_filename 的Text文件 //返回:另存是否成功 //删除Text文件 If DeleteFile(as_text_filename) Then //删除存在的Text文件成功 OLEObject l_ole l_ole = Create OLEObject; If l_ole.ConnectToNewObject("Excel.Application") = 0 Then //连接到Excel l_ole.Application.DisplayAlerts = False //关闭警告消息对话框,防止退出Excel时提示 l_ole.Application.Workbooks.Open(as_excel_filename) //打开Excel文件 l_ole.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158) //把打开的Excel文件另存为 Text文件,第二参数表示数据以制表符TAB分隔 l_ole.Application.Quit() //退出Excel Else Messagebox(\'错误\',\'无法建立与Excel的连接!\',StopSign!) Destroy l_ole Return False End If Destroy l_ole Return True Else //无法删除Text文件 Return False End If 保存excel文件: 要想选择目录可以这样 string ls_docname, ls_named //文件路径,文件名 integer li_rt li_rt = GetFileSaveName("选择保存路径并输入保存文件名" + string(jj), ls_docname, ls_named, & "Excel", & "Excel Files (*.XLS),*.XLS," + &

Excel VBA实例教程指南

Excel VBA教程之一:写在前面 VBA功能如何强大,这已勿庸费言,但如何才能很快进阶,写出自己满意的程序,却取决于个人努力和悟性。我下了很大功夫却收效甚微,有时,高手一句点拨却胜读三天书。所以,我把个人学习所得作一点整理,希望有助于后学。 只所以会有看书没用之感,一来是因为市面(我国)上大多数计算机类图书多为粗制滥造之作(这话稍有唐突),二来因为计算机这东西太呆板,不见得新出现的问题就能立即得到某本书籍上的解释,新问题总是层出不穷的。 想把一门编程语言全部搞懂,再去写点程序,是一个十分愚蠢的想法。你想盖房子,难道你想先学会制造砖头、玻璃等?我承认,把语言弄懂再做事情会很顺手,但是,你知道吗,有多少人在弄懂一门晦涩难懂的语言之前就放弃了呢?比如,什么叫面向对象编程?OOP和以前的流线性编程有什么异同?我还是大力提倡学以致用,别指望什么事你都能成专家,计算机世界的“罗氏定理”就是:“毕其一生,不能穷其万一”,你记住了吗? 那么,对于没有编程基础的人,怎样才能进步得快呢?我有几点思考: 1.你一定要带着明确的目的去做一件具体的事。这样,才会在做的过程中发现问题,并逐步去解决这些问题。比如,我想做一个《学生成绩分析系统》,我就会想到怎么才能把学生分数分成不同的班、怎么才能算出总分、平均分、标准差等、怎样比较各班的情况,怎样用图形显示更直观,怎么样才能把某个学生的历次成绩放在一起比较等。 2.你动手去做一做,一点一点地完成你上面的设想,不必因为这个大工程没做出来而忽略你在局部的突破,这样,你会越来越有信心,这就够了,还有什么比有信心做事的感觉更好的了吗? 3.合理及时利用网络资源,这绝对是个好东西,或许你看起来很了不起的问题,在别人看来简直不算什么,一定会有人为你解答。上网并不只是QQ和game啊!同时要好好利用软件的帮助系统,这才是最权威的解释,很多计算机书籍抄自帮助,你想,微软的专家写的,绝对原创,他还能去抄谁? 4.做了一些工作之后,再回过头来看书,就会感觉很亲切,觉得写书的人原来也不是一无是处,也是很辛苦的(不要过分自我批评了)。不过,要看书,计算机类的,我百分之一万地推荐你看外国人写的,首先,软件是人家编的,当然更了解。其次,外国人写的,又被介绍到中国来,也是比较优秀的了。三来,我确实作过对比,看老外的书收益最大。语言不通的问题怎么办?金山词霸一下呗。 我为什么要写这个东西?一是因为我想帮助别人,二是因为我想因此促进自己,三是因为我反感某些号称程序员的家伙,似乎编程是一件多么了不起的事,用一些极端人士的话来说:“编程有什么了不起?不就是判断和循环吗”,说得很有道理,从本质上说,计算机就是在做判断和循环,不信你就跟着我来吧。 好了,Let’s go Excel VBA教程之二:从一个界面设计开始 一个好的软件,除了运算速度快、体积小后,更重要的是,它的用户界面是不是很友好、亲切,“友好、亲切”这样的词汇在开始接触计算机语言时,感觉很好笑,但现在不一样了,我感觉这两个词最贴切!界面友好,就是引导用户能很快找到他需要的服务,最能想到他的心思,最体贴他,让他不时地心动,不时地赞叹!界面友好,就是能让用户在不经意间学到好多知识,无形中丰富了他自己,让他有美的享受!界面友好,还在于一目了然的界面却能让他需要的功能呼之即来,挥之即去!如此等等。 那么,我想做一个《学生成绩分析系统》,我该怎么做呢? 以下的界面你满意吗?

PB对excel的操作

Pb中对Excel文件的应用 Oleobject ole_object//建立OLE对象 ole_object=create oleobject//创建对象 integer li_ret li_ret=ole_object.connecttoobject( " ", "Excel.Application ")//建立连接 if li_ret <> 0 then //如果Excel还没有打开,则新建。 li_ret=ole_object.ConnectToNewObject( "Excel.Application ") if li_ret <> 0then messagebox( "OLE错误", "OLE无法连接!错误号:"+string(li_ret)) return end if ole_object.Visible=true end if pointer oldpointer//设置鼠标 oldpointer=setpointer(HourGlass!) ole_object.Workbooks.Add//新建工作薄 ole_object.Application.DisplayAlerts=False//关闭警告消息对话框,防止提示 ole_object.Application.Workbooks.Open(as_exccccccccccccccccccccccccccccccccccel_filename)/ /打开Excel文件 //ole_object.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158)//把打开的Excel文件另存为 //Text文件,第二参数表示数据以制表符TAB分隔 ole_object.Application.Quit()//退出Excel ole_object.activeworkbook.saved=true//放弃存盘 ole_object.workbooks.close//关闭工作簿 ole_object.Cells(1,1).Value=reptitle ole_object.Range( 'A1 ').Select ole_object.Selection.Font.Size=24 ole_object.selection.HorizontalAlignment=3//水平对齐方式: ole_object.Range( 'A1: '+f_columname(ll_colnum)+ '1 ').Select ole_object.Range( 'A1: '+f_columname(ll_colnum)+ '1 ').Merge ole_object.Columns(i).ColumnWidth=ld_width ole_object.Columns(i).HorizontalAlignment=3 ole_object.Columns(i).Borders.LineStyle=1 ole_object.Columns(i).Font.Bold=True ole_object.cells(i,j).NumberFormat= "@ " ole_object.cells(i,j).Font.Bold=false ole_object.cells(i,j).value=ls_value OLE_https://www.360docs.net/doc/af6327334.html,edRange.Rows.Count Sheets.Add 基本操作: Ole_object.Workbooks.add//新建一个Excel文件 Ole_object.Workbooks.Open( "FileName ")//打开一个已存在Excel文件

Excel VBA实例教程 #060:使用VBA自动生成图表

在实际工作中我们常用图表来表现数据间的某种相对关系,一般采用手工插入的方式,而使用VBA代码可以在工作表中自动生成图表,如下面的示例代码。 1.Sub ChartAdd() 2. Dim myRange As Range 3. Dim myChart As ChartObject 4. Dim R As Integer 5. With Sheet1 6. .ChartObjects.Delete 7. R = .Range("A65536").End(xlUp).Row 8. Set myRange = .Range("A" & 1 & ":B" & R) 9. Set myChart = .ChartObjects.Add(120, 40, 400, 250) 10. With myChart.Chart 11. .ChartType = xlColumnClustered 12. .SetSourceData Source:=myRange, PlotBy:=xlColumns 13. .ApplyDataLabels ShowValue:=True 14. .HasTitle = True 15. .ChartTitle.Text = "图表制作示例" 16. With .ChartTitle.Font 17. .Size = 20 18. .ColorIndex = 3 19. .Name = "华文新魏" 20. End With 21. With .ChartArea.Interior 22. .ColorIndex = 8 23. .PatternColorIndex = 1 24. .Pattern = xlSolid 25. End With 26. With .PlotArea.Interior 27. .ColorIndex = 35 28. .PatternColorIndex = 1

PB中操作Excel的技巧集

PB中操作Excel的技巧集 eole=CREATEOBJECT("Excel.application") 2.添加新工作簿 eole.Workbooks.add 3.设置第3个工作表为激活工作表 eole.Worksheets("sheet3").Activate 4.打开指定工作簿 eole.Workbooks.Open("c:\temp\ll.xls") 5.显示Excel窗口 eole.visible=True 6.更改Excel标题栏 eole.Caption=″VFP应用程序调用Microsoft Excel″ 7.给单元格赋值 eole.cells(1,4).value=XM(XM为数据库字段名) 8.设置指定列的宽度(单位:字符个数) eole.ActiveSheet.Columns(1).ColumnWidth=5 9.设置指定行的高度(单位:磅) eole.ActiveSheet.Rows(1).RowHeight=1/0.035 (设定行高为1厘米,1磅=0.035厘米) 10.在第18行之前插入分页符 e ole.Worksheets(″Sheet1″).Rows(18).PageBreak=1 11.在第4列之前删除分页符 eole.ActiveSheet.Columns(4).PageBreak=0 12.指定边框线宽度(Borders参数如下) ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=3 13.设置四个边框线条的类型 eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1 (其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线) 14.设置页眉 eole.ActiveSheet.PageSetup.CenterHeader=″报表1″ 15.设置页脚 eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″ 16.设置页眉到顶端边距为2厘米 eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035 17.设置页脚到底边距为3厘米 eole.ActiveSheet.PageSetup.FooterMargin=3/0.035 18.设置顶边距为2厘米 eole.ActiveSheet.PageSetup.TopMargin=2/0.035 19.设置底边距为4厘米 eole.ActiveSheet.PageSetup.BottomMargin=4/0.035 20.设置左边距为2厘米

EXCEL宏编程简明教程(有实例),

Excel宏编程简明教程 一)、宏学习 首先需要明确的是,本文不可能教会您关于宏的所有内容。您需要学会利用"录制宏"的方法来学习宏: 点击Excel"工具"下拉菜单中"宏"下?quot;录制新宏",此后可象平时一样进行有关操作,待完成后停止录制。然后再点击"工具"下拉菜单中"宏"下"宏"的"编辑"选项即可打开刚才所录制的宏的Visual Basic源程序,并且可以在此时的"帮助"下拉菜单中获得有关的编程帮助。对录制宏进行修改不仅可以学习宏的使用,还能大大简化宏的编写。 二)、基本概念 为了学习Excel中的宏,我们需要先了解以下一些基本概念。 1、工作簿: Workbooks、Workbook、ActiveWorkbook、ThisWorkbooks集合包含Excel中所有当前打开的Excel工作簿,亦即所有打开的Excel文件;Workbook对应Workbooks中的成员,即其中的Excel文件;ActiveWorkbook代表当前处于活动状态的工作簿,即当前显示的Excel文件;ThisWorkbook代表其中有Visual Basic 代码正在运行的工作簿。 在具体使用中可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称或编号;如Workbooks (1)、Workbooks("年度报表.xls")。而编号按照创建或打开工作簿的顺序来确定,第一个打开的工作簿编号为1,第二个打开的工作簿为2……。 2、工作表: Worksheets、Worksheet、ActiveSheet

Worksheets集合包含工作簿中所有的工作表,即一个Excel文件中的所有数据表页;而Worksheet则代表其中的一个工作表;ActiveSheet代表当前处于的活动状态工作表,即当前显示的一个工作表。 可用Worksheets(index)来引用Worksheet对象,其中index为工作表名称或索引号;如Worksheets (1)、Worksheets("第一季度数据")。工作表索引号表明该工作表在工作表标签中的位置: 第一个(最左边的)工作表的索引号为1,最后一个(最右边的)为Worksheets.Count。需要注意的是: 在使用过程中Excel会自动重排工作表索引号,保持按照其在工作表标签中的从左至右排列,工作表的索引号递增。因此,由于可能进行的工作表添加或删除,工作表索引号不一定始终保持不变。 3、图表: Chart、Charts、ChartObject、ChartObjects、ActiveChart代表工作簿中的图表。该图表既可为嵌入式图表(包含在ChartObject中),也可为一个分开的(单独的)图表工作表。 Charts代表指定工作簿或活动工作簿中所有图表工作表的集合,但不包括嵌入式在工作表或对话框编辑表中的图表。使用Charts(index)可引用单个Chart 图表,其中index是该图表工作表的索引号或名称;如Charts (1)、Charts("销售图表")。图表工作表的索引号表示图表工作表在工作簿的工作表标签栏上的位置。Charts (1)是工作簿中第一个(最左边的)图表工作表; Charts(Charts.Count)为最后一个(最右边的)图表工作表。 ChartObject代表工作表中的嵌入式图表,其作用是作为Chart对象的容器。利用ChartObject可以控制工作表上嵌入式图表的外观和尺寸。

PB从EXCEL中导入数据窗口的函数

PB从EXCEL中导入数据窗口的函数 //***************************************************************// // 函数名称: GF_EXCEL_TO_DATAWINDOW // 函数功能: EXCEL文件导入 DATAWINDOW // 参数类型: DWTAWINDOW // 参数名称: DW // RETURN : 1 SUCCEED -1 ERROR // DATE : 2004 3.1 //***************************************************************// string str_savename,named,s_grxh int excelok,li_net long li_count,i oleobject excelserver excelserver=create oleobject excelok=excelserver.connecttonewobject("excel.application") //检查返回值,以确保已成功地连接到了Excel if excelok <> 0 then messagebox("信息提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!") return -1 end if li_net = GetFileOpenName("选择文件", str_savename,named,"xls","Excel 文件(*.xls),*.xls") if li_net > 0 then

if str_savename = "" then return -1 dw.settransobject(sqlca) dw.reset() excelserver.workbooks.open(str_savename) excelserver.activesheet.cells.copy //复制到剪贴板 li_count = dw.importclipboard(2) //导入数据 //dw.importfile(str_savename)//直接导入 clipboard("") excelserver.quit() excelserver.disconnectobject() destroy excelserver return 1 else messagebox('信息提示','没有指定导入文件!') return -1 end if

Excel VBA实例教程 #022:选择工作表的方法

在VBA中需要激活或者选择某个工作表时使用Select方法或Activate方法,如下面的代码所示。 1.Sub SelectSh() 2. Worksheets("Sheet2").Select 3.End Sub 4.Sub ActivateSh() 5. Worksheets("Sheet2").Activate 6.End Sub 代码解析: SelectSh过程使用Select方法选择“Sheet2”工作表,而ActivateSh过程则使用Activate 方法选择“Sheet2”工作表,从表面看两者的作用是相同的,但是如果“Sheet2”工作表是隐藏的,Activate方法可以正常运行,而Select方法将会出现错误,如图1所示。 图 1 Select方法无效提示 如果需要同时选中工作簿中的所有工作表,则只能使用Select方法而不能使用Activate 方法,如下面的代码所示。 1.Sub SelectShs() 2. Dim Shs As Worksheet 3. For Each Shs In Worksheets 4. Shs.Select False 5. Next 6.End Sub 7.Sub SelectSheets() 8. Worksheets.Select 9.End Sub 10.Sub ArraySheets() 11. Worksheets(Array(1, 2, 3)).Select

12.End Sub 代码解析: SelectShs过程遍历工作表并使用带参数的Select方法选中所有工作表。应用于Worksheet对象的Select方法的语法如下: Select(Replace) 参数Replace是可选的。如果该值为True,则用指定对象替代当前选定对象。如果该值为False,则延伸当前选定对象以包括任何以前选定的对象。 SelectSheets过程使用Worksheets集合的Select方法选中集合中所有的对象。 ArraySheets过程使用Array 函数返回工作簿中的前三张工作表并使用Worksheets集合的Select方法选中前三张工作表。

PB 调用VC 创建的DLL 在MIS 中的设计与实现

PB调用VC创建的DLL在MIS中的设计与实现 DLL Founded by the call of PB to VC and its design and Implementation in MIS (1.北京理工大学;2.军械工程学院)陈建泗1,2 商建云1 Chen JianSi Shan JianYun 摘 要:在管理信息系统(MIS)的开发中,常常需要用到OLE技术实现Exce l报表,PowerBuilder 虽然功能强大,但它的OLE控件功能相对较差,而VC具有强大的开发报表功能。以院校教学保障管理中实际应用的教材库存管理信息系统为实例,设计PowerBuilder与VC之间DLL调用接口和Excel报表实现流程,采用VC开发一个实现Excel报表的DLL库,然后通过PowerBuilde r 调用DL L中的函数,实现Excel报表功能。实现了构件的复用,提高了软件开发效率。 关键字:动态链接库;OLE;MIS;PB;VC 中国分类号:TP393 文献标识码:A Abstract:In developing of MIS,usually need to use OLE Technology to realize Excel Statements, PowerBuilder is powerful,but its OLE ActiveX Control function is weak,Excel statement function is powerful in VC.The paper designs the called interface between PowerBuilder and VC, and designs the realizing process in Excel Statements base on MIS of Textbook Stock.,and develops a DLL that has the function to realize Excel Statements,the function of DLL is called by PowerBuilder to realize Excel Statements, realizing component reuse and improving efficiency in the development of software. Key words: DLL;OLE;MIS;PowerBuilder;VC++ 1引言 PowerBuilder是一种面向C/S方式的数据库应用程序的开发工具。PB拥有数据窗口、嵌入式SQL语句等技术,在开发数据库应用程序时显得特别方便。但在涉及到系统底层的一些功能时,PB本身提供的功能就有些不尽如人意。因为Windows操作系统提供给用户的接口是C语言函数形式,而VC在调用系统底层功能方面,从编程角度来讲就要方便得多。VC还有许多PB所不具备的优点,比如数据结构表达能力强,实现复杂算法的程序相对容易开发,运行速度快等。此外,不少外围设备的驱动程序提供的也是C接口。若能将这两种语言结合起来使用,充分发挥它们各自的优点,将会大大提高开发效率、增强应用程序的功能。在管理信息系统的开发中,以VC++作为开发动态链接库DLL的工具,在动态链接库中采用OLE技术,实现Excel 报表,然后再通过PB调用动态链接库, 实现PowerBuilder与VC++的集成,从而实现软件的复用,大大提高系统的开发和运行效率。本文以在院校教学保障管理中实际应用的教材库存管理信息系统为例进行介绍。 2MIS开发中导出Excel的设计 管理信息系统常常需要将查询所得的结果导出到Excel中,便于数据的记录和分发。在生成Excel报表时,教材库存管理信息系统采用了Office组件来实现此功能,以动态链接库DLL的形式完成此项功能。定义好接口关系,只需把要导出的数据以参数形式传给DLL,DLL调用指定的模版完成数据的载入,通过文件流的方式来实现生成Excel文件,并保存到指定的路径。因为VC具有强大的开发报表的功能,系统通过VC开发DLL,然后在PowerBuilder中调用此DLL 实现Excel报表功能。 定义的函数名称和接口如下: 动态链接库文件名称:ExcelDLL; 函数名称:ListToExl(CList *plist,int iFlag);

excel2010 vba笔记 (实战教程)(基础实例)

VBA笔记 8-21 1.VBA是什么: 微软开发出来的应用程序一种能共享通用的自动化语言,VBA能使已有的应用程序(excel等)自动化,可以创建自定义的解决方案.等同:可以用excel的宏语言来使excel自动化,使用word BASIC使word自动化,等等。VBA可以称作excel的“遥控器”.此外,如果你愿意,还可以将excel用做开发平台实现应用程序. 2.VBA可以实现的功能 1. 使重复的任务自动化. 2. 自定义excel工具栏,菜单和界面. 3. 简化模板的使用. 4. 自定义excel,使其成为开发平台. 5. 创建报表. 6. 对数据进行复杂的操作和分析. 3.宏 3.1录制简单的宏 选择“工具”—“宏”—“录制新宏”—输入宏名—确定—开始录制(状态栏中显示“录制”)—结束宏录制(“工具”—“宏”—“停止录制”。)*开始录制并非一个按钮,而是你的一系列操作,宏会记录下来变为自己的操作。 3.2执行宏 选择任何一个单元格—选择“工具”—“宏”—“宏”(出现“宏”对话框)—选择相应的宏名—“执行”。 3.3查看录制的代码 工具”—“宏”—“宏”(显示“宏”对话框)—选择某个宏—“编辑” VBA的编辑器窗口(VBE) Sub 改变颜色() //宏名 ’ ’改变颜色Macro ’xw 记录的宏2000-6-10 ’ ’//以上五行录制时自动生成 Range("A5").Select //表示无论选择哪个单元格,最后都只作用于A5 With Selection.Interior//设置属性在选择区域的内部(开始录制属性) .ColorIndex = 3 //颜色为3号色:红色 .Pattern = xlSolid //区域内部图案=纯色(录制时自动生成,可删) PatternColorIndex = xlAutomatic //内部图案底纹颜色=自动(自动生成,可删) End With //结束属性录制 End Sub//结束宏录制 一个名为练习的宏: Sub 练习() ' ' 练习宏 ' ' With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0

pb导出excel(直接导出)

基本操作: Ole_object.Workbooks.add//新建一个Excel文件 Ole_object.Workbooks.Open("FileName")//打开一个已存在Excel文件 Ole_object.ActiveWorkBook.Sheets("SheetName").Select//选择文件中一个工作表 Ole_object.Application.Run("MacroName")//运行宏 Ole_object.Application.Visible=TRUE//Excel文件可见 Ole_object.Application.ScreenUpdating=true//设置可见属性 ②格式设置 Ole_object.ActiveSheet.Columns("A:U").AutoFit//列宽自动调整 Ole_object.ActiveSheet.Columns("A:Z").ColumnWidth=6.75//列宽 Ole_object.ActiveSheet.Rows("1:100").RowHeight=12//行高 Ole_object.Application.StandardFont="ArialNarrow";//设置字体 Ole_object.Application.StandardFontSize="8"//设置字号 Ole_object.ActiveSheet.Font.Size="8"//设置字号 Ole_object.ActiveSheet.Font.Bold=True//粗体 Ole_object.ActiveSheet.Font.Italic=True//斜体 Ole_object.ActiveSheet.Font.Underline=True//下划线 Ole_object.ActiveSheet.Font.StrikeThrough=True//删除线 Ole_object.ActiveSheet.HorizontalAlignment=3//水平:4靠右;3居中;2靠左 Ole_object.ActiveSheet.VerticalAlignment=2//垂直:3靠下;2居中;1靠上 Ole_object.ActiveSheet.cells(2,1)https://www.360docs.net/doc/af6327334.html,=’黑体’//设置字体 Ole_object.ActiveSheet.cells(2,1).font.size=25//设置字体大小 ③工作区域操作: Ole_object.ActiveSheet.Range("A1:Z10").Property=value//设置一个工作区域内的属性值 Ole_object.ActiveSheet.Range("A1:Z10").Merge//合并单元格 Ole_object.ActiveSheet.Range("A1:Z10").WrapText=False//自动换行禁止 Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).Weight=i_val//b_type:1左边界;2右边界;3上边界;4下边界;5左上倾斜;6右上倾斜(以上为对单元格的操作)7左边界;8上边界;9下边界;10右边界;11内部垂直边界;12内部水平边界(以上为对区域的操作)//i_val:0无边界线;然后1,2,3。。。依次边界线加粗 Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).linestyle=1//1与7—细实、2—细虚、4—点虚、9—双细实线 ④赋值操作 O le_object.ActiveSheet.range("A1:Z10").Cells.value=“姓名” Ole_object.ActiveSheet.range("A1:Z10").Cells.value=1 Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“2003-01-01” Ole_object.ActiveSheet.Range("A1:Z10").Cells(1,2).value=“年龄”//区域内一个单元格的赋值Ole_object.ActiveSheet.Range("A1:Z1").Cells(1,1).value=“SUM(RC[-9]:RC[-1])” 方法2 OleObject Loo_Excel Loo_Excel=create oleobject if Loo_Excel.ConnectToNewObject("Excel.Application") <> 0 then messagebox('提示','系統未安裝Excel,無法運行此操作!')

相关文档
最新文档