求火星情报局全集百度云2的百度云

查看: 1594|回复: 5
excel公式做成独立运行软件求大神赐教
阅读权限10
在线时间 小时
公式已经写好,、不想让别的使用者看到公式。想做类似下图的独立程序&&请大家指导下
1122.jpg (39.38 KB, 下载次数: 0)
20:40 上传
因为公式比较复杂
QQ图片24.jpg (73.35 KB, 下载次数: 0)
20:45 上传
自认为还没能力请大神帮忙看看该如何解决
首先感谢进来看帖的各位前辈
下面是附件
需要三个类似的程序
(27.22 KB, 下载次数: 25)
20:44 上传
点击文件名下载附件
阅读权限95
在线时间 小时
本帖最后由 qy1219no2 于
21:35 编辑
想让别人看不见自己的公式,不用搞EXE,按如下方法即可实现:
1.选中全部表格(一次性全选),鼠标右键——设置单元格格式——保护选项卡,勾选“保护”和“隐藏”;
2.再选中(可一次多选,下同)允许编辑的单元格,鼠标右键——设置单元格格式——保护选项卡,将“保护”和“隐藏”前面的勾去掉
3.主菜单“审阅”——保护工作表,输入你的保护密码,再次输入相同密码一次。OK
这时,只要不用密码解开工作表保护,任何人(包括你)都无法看到公式,更无法编辑。
【提示】在保护工作表弹出来的对话框中适当勾选相应项(比如删除行),则可以有更多保护功能。
附件给你简单做了一个,供你参考,密码123
21:35 上传
点击文件名下载附件
14.03 KB, 下载次数: 31
阅读权限10
在线时间 小时
qy1219no2 发表于
想让别人看不见自己的公式,不用搞EXE,按如下方法即可实现:
1.选中全部表格(一次性全选),鼠标右键—— ...
感谢了!还是希望做成单独的对话框类型的
阅读权限95
在线时间 小时
iao002 发表于
感谢了!还是希望做成单独的对话框类型的
做成窗体对话框,使用者打开Excel不启用宏,一切都白搭
阅读权限10
在线时间 小时
做成exe方式噻!不过照样会涉及Execl的版本问题。用其他语言写!
阅读权限100
在线时间 小时
你做成xll加载宏,把你的公式封装起来。相当于外挂一个自定义函数
用com加载项或者自动化加载项也凑合,就是部署麻烦点
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师帐号:密码:下次自动登录{url:/nForum/slist.json?uid=guest&root=list-section}{url:/nForum/nlist.json?uid=guest&root=list-section}
贴数:1&分页:帅小呆发信人: cooooldog (帅小呆), 信区: DotNET
标&&题: 这种封装.xls为exe的方法对VB2008是否仍旧可行
发信站: 水木社区 (Sun Jul 18 08:16:46 2010), 站内 && [原创]XLS封装成EXE制作全攻略 && XLS封装成EXE制作全攻略 && ■ ldhyob&&2003.12 &&&&&&&& 曾在论坛发表过一张帖,是关于制作动态EXE例子(
cdb/viewthread.php?tid=15781)的,大家对此兴趣颇浓,都建议公开详细制作细节,故
决定写出此文以帮助关注那张帖的版友们能完全自已独立完成xls2exe的过程,实现简单
的封装。首先申明,将xls做成exe并不是指就能使您的VBA工程受到坚强的保护,当然您
可以通过数种方法来提高xls文档VBA工程防止查看的保护几率,如屏蔽一些系统热键、
监控VBE窗口的开启、给文档加上口令保护、加VBA口令、使VBA“不可查看”、利用宏表
4.0来禁止用户取消宏来查看文档等等,但“道高一尺,魔高一丈”,所以就没有必要去
追求所谓的“完美”加密……关于这些保护方法不属本文叙述范围,请版友在论坛上查
看相关帖。 &&&&&&&& 假如您手头已有一xls文档等待封装,假如您机子上已安装有VB6开发系统,那么
请跟着往下操作: &&&&&&&& 一、用VB制作EXE文件头部分 &&&&&&&& 1、打开VB,“文件”-“新建工程”-“标准EXE”; &&&&&&&& 2、此时会出现名为Form1的默认窗体编辑窗口,Form1将作为软件启动封面窗体,
打开该Form1的属性窗口,对如下属性进行设置:BorderStyle=0,StartUpPosition=2,
Icon与Picture属性设置成你需要的图标(这也将成为你EXE的图标)和设计好准备使用
的图片(即软件封面),窗体的大小设置成您需要的合适值即可。 &&&&&&&& 3、往窗体中添加一个时钟控件timer1,并将其InterVal属性设为1000。 &&&&&&&& 4、双击窗体打开代码编辑窗口,录入以下代码: && Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVa
l hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Lon
g, ByVal cy As Long, ByVal wFlags As Long) As Long && Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNa
meA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUniqu
e As Long, ByVal lpTempFileName As String) As Long && Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (By
Val nBufferLength As Long, ByVal lpBuffer As String) As Long && Private Const MAX_PATH = 260 && Private Const EXE_SIZE = 81920 '本EXE实际字节大小 && Private Type FileSection &&&& Bytes() As Byte && End Type && Private Type SectionedFile &&&& Files() As FileSection && End Type && Dim StopTime As Integer && Private Sub Form_Activate() && If Command() = "" Then Main1 && End Sub && Private Sub Form_Load() && On Error Resume Next && If Command() = "" Then &&&& Form1.Visible = True &&&& SetWindowPos Form1.hwnd, -1, 0, 0, 0, 0, &H2 Or &H1 '将封面置为最顶层窗体 && Else &&&& Form1.Visible = False &&&& Form1.Timer1.Enabled = True && End If && End Sub && Sub Main1() && Dim StartXLSByte, I, J As Long && Dim AppPath, XlsTmpPath As String && Dim myfile As SectionedFile && Dim xlApp As Excel.Application '定义EXCEL类 && Dim xlBook As Excel.Workbook '定义工件簿类 && Dim xlsheet As Excel.Worksheet '定义工作表类 && AppPath = App.Path && XlsTmpPath = GetTempFile() '取得XLS临时文件名(带路径) && If VBA.Right(App.Path, 1) = "\" Then AppPath = VBA.Left(App.Path, VBA.Len(Ap
p.Path) - 1) && Open AppPath & "\" & App.EXEName & ".exe" For Binary As #1 && ReDim myfile.Files(1) && ReDim myfile.Files(1).Bytes(1 To LOF(1) - EXE_SIZE) && Open XlsTmpPath For Binary As #2 &&&&&& Get #1, EXE_SIZE + 1, myfile.Files(1).Bytes '此处数字要根据EXE实际头文件
大小更改设定 &&&&&& Put #2, 1, myfile.Files(1).Bytes && Close #1 && Close #2 && Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类 && Set xlBook = xlApp.Workbooks.Open(FileName:=XlsTmpPath, password:="ldhyob")&& '打开EXCEL工作簿,已知该工作簿已加打开口令为ldhyob && '以下星号括起部分代码是往xls里写数据(也可不往工作簿里写数据的方法,而生成tx
t的方法),作用是保存本exe的绝对路径与临时xls绝对路径,以便于EXE重写更新与临
时文件删除 && '***************************************** && Set xlsheet = xlBook.Worksheets("temp") '设置活动工作表 && xlsheet.Cells(1, 1) = AppPath & "\" & App.EXEName & ".exe" '将该EXE完全路径存
在工作表单元格内 && xlsheet.Cells(2, 1) = XlsTmpPath '将该EXE本次运行产生XLS临时文件路径存在工作
表单元格内 && '**************************************** && xlApp.Visible = True '设置EXCEL可见 && Set xlApp = Nothing '释放xlApp对象 && StopTime = 0 && Me.Timer1.Enabled = True '启动时钟 && End Sub && Private Function GetTempFile() As String '用来产生系统临时文件名 && Dim lngRet As Long && Dim strBuffer As String, strTempPath As String && strBuffer = String$(MAX_PATH, 0) && lngRet = GetTempPath(Len(strBuffer), strBuffer) && If lngRet = 0 Then Exit Function && strTempPath = Left$(strBuffer, lngRet) && strBuffer = String$(MAX_PATH, 0) && lngRet = GetTempFileName(strTempPath, "tmp", 0&, strBuffer) && If lngRet = 0 Then Exit Function && lngRet = InStr(1, strBuffer, Chr(0)) && If lngRet & 0 Then && GetTempFile = Left$(strBuffer, lngRet - 1) && Else && GetTempFile = strBuffer && End If && End Function && Private Sub Timer1_Timer() && On Error Resume Next && If Command() && "" Then &&&&&&If VBA.Dir(Command()) && "" Then &&&&&&&& Kill Command() '删除本次运行遗留的临时XLS文件 &&&&&&Else &&&&&&&& End &&&&&&End If && Else && StopTime = StopTime + 1 '计时累加 && If StopTime = 1 Then Unload Me: End '2秒后自动关闭退出 && End If && End Sub &&&&&&&& 5、可保存工程,如取名为“工程1”; &&&&&&&& 6、进行编译,“文件”-“生成工程1.exe”,此时也可将生成的EXE另外取名,
如取名叫abc.exe。 &&&&&&&& 7、查看第6步生成的EXE文件字节大小,并将具体数字记下来,并将VB模块中的“
Private Const EXE_SIZE = 81920”保证一致(这里的81920是笔者例子的结果数字,每
个人在实际时会有不同)。此例此步很重要,必须要做,该数字在xls文档VBA中还要使
用到。 &&&&&&&& 至此,文件头部分已做完,abc.exe文件也已生成于磁盘中。 &&&&&&&&&&&&&&特别提示:编译前,确保VB里"工程"---"引用"里"Microsoft Excel 9.0 Obj
ect Library"前面的勾已打上. &&&&&&&& 二、xls文档部分操作 &&&&&&&& 1、给工作簿增加一个工作表temp,将其置为隐藏。 &&&&&&&& 2、增加xls文档宏代码以实现文档关闭时EXE数据刷新。 &&&&&&&& 打开xls文档,打开VBE窗口,在ThisWorkBook代码区头部加入以下代码: && Private Const EXE_SIZE = 81920 '此处数字为前面第7步得到的EXE文件字节数 && Private Type FileSection &&&& Bytes() As Byte && End Type && 在Workbook_BeforeClose事件中加入如下代码(对原有的代码可保留): &&&&&& Dim myfile As FileSection '定义变量 && Dim comc, exec, xlsc As String '定义变量 &&&&&& Application.Visible = False '隐藏EXCEL主窗口 &&&&&& exec = WorkSheets(“temp”).cells(1,1).value &&&&&& xlsc = WorkSheets(“temp”).cells(2,1).value &&&&&& comc = exec & " " & xlsc &&&&&& Open exec For Binary As #1 '打开EXE文件 &&&&&& ReDim myfile.Bytes(1 To EXE_SIZE) &&&&&& Get #1, 1, myfile.Bytes '取得固有文件头 &&&&&& Close #1 &&&&&& If VBA.Dir(exec) && "" Then Kill exec&&&&&&&& Open exec For Binary As #1 '生成新的EXE文件 &&&&&& Put #1, 1, myfile.Bytes '先写入文件头 &&&&&& Open&&xlsc For Binary As #2 '打开xls临时文件 &&&&&& ReDim myfile.Bytes(1 To FileLen(xlsc)) &&&&&& Get #2, 1, myfile.Bytes &&&&&& Put #1, EXE_SIZE + 1, myfile.Bytes '将xls部分追加进EXE &&&&&& Close #1 &&&&&& Close #2 &&&&&& Application.Quit &&&&&& Shell comc, vbMinimizedNoFocus ‘删除临时xls文件 &&&&&&&& 3、保存文档,退出,关闭EXCEL。 &&&&&&&& 三、将EXE与XLS结合生成新的EXE &&&&&&&& 将第一步得到的abc.exe与第二步得到的test.xls(文件名随你愿意取)放到同一
目录下,切换到MS-DOS模式,或者在该目录下建立一个批处理文件即bat文件,这样就不
用切换到MS-DOS模式下输入DOS命令了。建立bat文件的步骤方法是:鼠标右键“新建”
—“文本文档”,输入以下内容: && @echo off && copy /b abc.exe + test.xls main.exe && 保存,更改文件名(包括扩展名)为“合并.bat”,然后双击它,不一会就会发现在当
前目录下会多出一个EXE文件main.exe,这就是封装成品了,你可以将其重命名为所需要
的名称。 &&&&&&&& && 好了,大功告成! &&&& &&&& -- && ※ 来源:·水木社区 newsmth.net·[FROM: 118.133.77.*]
文章数:1&分页:
抽奖到手软!将狂欢进行到底!关注今日:3 | 主题:179404
微信扫一扫
扫一扫,下载丁香园 App
即送15丁当
【其他】用excel完全可以代替SPSS软件
页码直达:
这个帖子发布于5年零4天前,其中的信息可能已发生改变或有所发展。
统计分析中使用SPSS软件进行统计计算与分析,但深入研究了一下excel程序,就可以发现微软实在是优秀的软件公司,使用excel程序完全可以替代SPSS程序。一、 excel中的统计函数除了轻而易举的四则运算之外,在excel中有专门的统计函数栏目(点击插入-函数-统计),包括∶中位数(MEDIAN)、众数(MODE)、方差(DEVSQ)、标准差(STDEV)、频率(FREQUENCY)、置信区间(CONFIDENCE)、最大值(MAX)、最小值(MIN)等等,看一看帮助说明操作起来很容易。如果一下找不到想要的函数(也可能有,只是自己没发觉),也不难,可以根据公式让excel计算。我不喜欢记公式,就去查一下书,然后把常用的一些统计公式做到excel某个文件中。比如,为计算应调查的样本数量,做出下表∶1、重复抽样概率度t标准差σ极限误差△样本总数N样本数n B3C3 D3 =B3^2*C3^2/D3^22、不重复抽样概率度t标准差σ极限误差△样本总数N样本数n B5C5  D5 E5F5 =E5*B5^2*D5^2/(E5*D5^2+B5^2*D5^2)等等。上表中B3、C3等符号是为了说明空格的位置才加上去了,在excel中看不到,在相应的位置输入实际的数据结果就会自动算出来。当然,用vb的frame控件来编个程序也可以,但好像太浪费大脑与电脑资源了,这样的函数已经足够解决我们的问题。其它很多统计计算用函数也可同样处理。说一句话,如果有了电脑并安装了微软办公软件,您还在用计算器,说明你不够聪明。^_^二、 统计数据分析1、分析工具库加载宏SPSS中的回归分析,在excel“工具”中也用(见本人的博客“利用excel提高工作效率”),用数组公式也可以,步骤如下∶A.
选定数组公式输入区域B.
输入公式C.
按ctrl+shift+enter完成2、聚类分析等充分利用excel中的“筛选”、“排序”即可,在“数据”菜单中,具体操作方法请看“帮助”。在excel中做交叉分析时,可以使用“筛选”,数据的个数数字会显示在excel文件的下方。当然,如果要做大量的交叉分析,这样的办法还是很不方便的,不够自动化,很多数字要靠手工记录,这个时候,就要辛苦一些,用vb语言做一下程序了(不要怕,vb语言就是为非专业人士准备的程序语言,操作思路见本人的博客“利用excel提高工作效率”。3、各种统计检验在excel中,还有成对双样本均值分析、t检验:双样本等方差假设、F检验:双样本方差分析等,能够大大提高统计结论的科学性。三、 用宏语言安排统计工作在SPSS中,使用者没有什么自由度,完全受到人家事先编好程序的控制,遇到一些临时出现需要特别处理的问题十分被动,不妨尝试一下在Window中用vb语言编一些程序吧。我做交叉分析就用了vb语言,就是用循环句(for)而已,让统计结果自动汇总显示在数据库的某一处。当然,为了提高程序的运行速度,建议尽量利用Window本身已有的功能。比如,我会让程序先对数据库进行排序,然后利用Window已有的“筛选”功能提高计算的速度,这样,运行效率提高了很多。即使不懂这些所谓的技巧也没有关系,大不了让电脑累一些就是了,你自己可以放松一下,多一些伸懒腰的时间。数据库的汇总统计用countif函数也可以,但太笨,如果你经常做统计工作,建议将工作“录制宏”,并进行一些改编,这样,一点击鼠标,数据的统计结果就自动出来了。这还不够,我还让excel根据统计结果自动作图,自动将统计数据库及图标拷贝到Word中(因为我们总是在Word中写分析报告)。我们的问卷一般都录入在Word文件中,我们设置的excel数据统计程序显示的选项都是数字,没有把汉字选择项表示出来。一开始,我们都是从Word中一点一点把文字拷进excel表格中的相应位置,后来,我觉得如果已经在电脑中输入过一次,就不应该为此做第二次的手工工作,就编了一个小程序,Word中的汉字就可以直接自动拷贝到excel中来了,省了很多手工劳动。四、 其它象制图之类的工作,excel也相当出色,没有必要劳驾SPSS。总之,Office实在是太强了,在电脑办公方面有绝对的垄断性,好好用它,就可以不理睬许多其它的电脑软件,大大提高我们的工作效率,降低自己的学习与时间成本。
不知道邀请谁?试试他们
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
呵呵,,想你这么说的话,C(foxbase等)语言也能代替SPSS、excel啊。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
彼此彼此,各有千秋。我用Excel录数据,用SPSS做分析,报告论文当然是用Word。只要用我们熟悉的工具,准确的完成工作就好。Excel录入管理数据功能非常强大,而SPSS做统计非常专业,我最近在同时学习使用中。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
EXCEL的确不错,但是还是不能代替统计软件的。不说别的,EXCEL的统计功能简单单一,需用户进行精心的组合才成。并且,EXCEL的函数十分简单,许多统计工作不能做的。不说别的:重复测量资料的球形性检验,它能做吗?俺可是费了好大好大的事,编了一大堆前后台程序才实现的。再说一个,多元线性回归,EXCEL只能做基础的部分,优选子集它可一点不会。哈哈哈哈
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
还有,就是回归部分,它也有一些错误。行列式的处理方面,它做的不够好
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
呵呵,SAS才是巨无霸!嘿嘿。。。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
关于丁香园当前位置: &
& 水文论坛
在VB应用程序中调用Excel对象
发布日期:
浏览量:6611
在VB应用程序中调用Excel对象
(福建省漳州水文水资源勘测分局,福建漳州,363000)
摘& 要:Visual Basic(简称VB)是设计Windows应用程序强有力的开发工具, Excel是目前使用最广泛的办公应用软件之一,它具有强大的数学分析与计算功能,包括很多VB没有的求值数学表达式的函数和方法。由于Excel的应用程序对象是外部可创建的对象,所以能从VB应用程序内部来程序化操纵Excel。
关键词:VB;Excel;调用。
做为一种简捷、系统的 Windows应用程序开发工具,VB具有强大的数据处理功能,提供了多种数据访问方法,可以方便地存取Microsoft SQL Server、Oracle、XBase等多种数据库,被广泛应用于建立各种信息管理系统。但是,VB缺乏足够的、符合中文习惯的数据表格输出功能,虽然使用Crystal Report控件及 Crystal Reports程序可以输出报表,但操作起来比较麻烦,中文处理能力也不理想。Excel在表格方面有着强大的功能,我们可以用VB编写直接控制Excel操作的程序,方法是用VB的OLE自动化技术获取Excel的控制句柄,从而直接控制Excel的一系列操作。本文结合自己的实践和体会,谈谈如何在VB6.0应用程序中调用Exce12000,供大家参考。
2 Excel对象模型
  为了在VB应用程序中调用Excel,必须要了解Excel对象模型。Excel对象模型描述了Excel的理论结构,所提供的对象很多,涉及VB调用Excel时最可能用到的对象有:
3 调用Excel
在VB应用程序中调用Excel,实质是将Excel作为一个外部对象来引用,由Excel对象模型提供能从VB应用程序内部来程序化操纵的对象以及相关的属性、方法和事件。
3.1& 在VB工程中添加对Excel类型库的引用
为了能从VB应用程序中访问Excel丰富的内部资源,使Excel应用程序运行得更快,需要在VB工程中添加对Excel类型库的引用。具体步骤如下:
1) 在VB应用程序中调用Excel,你的计算机系统中必须安装Excel。从VB5&工程&菜单中选择&引用&;
2) 在&引用&对话框中选择Excel类型库:&Microsoft Excel9.0 Object Library&;
3) 单击左边小方框,使之出现&&&符号;
4) 按&确定&退出。
3.2& 引用Application对象
Application对象是Excel对象模型的顶层,表示整个Excel应用程序。在VB应用程序中调用Excel,就是使用Application对象的属性、方法和事件。为此,首先要声明对象变量:  
Dim VBExcel As Object
或直接声明为Excel对象:
Dim VBExcel As Excel.Application
在声明对象变量之后,可用CreateObject函数或GetObject函数给变量赋值新的或已存在的Application对象引用。
1)用CreateObject函数生成新的对象引用:
Set VBExcel=CreateObject (&Excel.Application&)
字符串&Excel.Application&是提供Excel应用程序的编程ID,这个变量引用Excel应用程序本身。
2)用GetO场ect函数打开已存在的对象引用:
Set AppExcel=GetObject(&Temp.XLS&)
上面语句打开文件Temp.XLS。
3)Application对象常用的属性、方法 
Visible属性取True或False,表明Excel应用程序是否可见。
Left,Top属性Excel窗口的位置;
Height, Width属性Excel窗口的大小;
WindowState属性指定窗口的状态;
Quit方法,退出Microsoft Excel;
Calculate方法,重新计算所有打开的工作簿、工作表或单元格。
Evaluate方法,求值数学表达式并返回结果。
3.3& 使用应用程序
下面分类给出其中常用的属性和方法。
1)使用工作薄
Workbook对象代表Excel应用程序中当前打开的一个工作簿,包含在Workbooks集合中。可以通过Workbooks集合或表示当前活动工作簿的Active Workbook对象访问Workbook对象。
常用的方法有:
Add方法:创建新的空白工作簿,并将其添加到集合中。
Open方法:打开工作簿。
Activate方法:激活工作簿,使指定工作簿变为活动工作簿,以便作为Active Workbook对象使用。
Save方法:按当前路径和名称保存现有工作簿(如是首次保存,则将其保存到缺省名称中,如BOOK1.XLS)。
SaveAs方法:首次保存工作簿或用另一名称保存工作簿。
Close方法:关闭工作簿。
PrintOut方法:打印工作簿,语法为:
PrintOut (from, To, Copies, Preview, Printer, ToFile, Collate)
可选参数:
From:打印的起始页号,如省略将从起始位置开始打印。
To:打印的终止页号,如省略将打印至最后一页。
Copies:要打印的份数,如省略将只打印一份。
Preview:如果为True则Excel打印指定对象之前进行打印预览。如果为False或省略则立即打印该对象。
Printer:设置活动打印机的名称。
ToFile:如果为True则打印输出到文件。
Collate:如果为True则逐份打印每份副本。
下面语句将活动工作簿的2到5页打印3份: 
ActiveWorkbook.PrintOut From:=2 To 5 Copies:=3  
2)使用工作表
Sheets集合表示工作簿中所有的工作表。可以通过Sheets集合来访问、激活、增加、更名和删除工作表。一个Worksheet对象代表一个工作表。
常用的属性、方法有:
Worksheets属性:返回Sheets集合。
Name属性:工作表更名。
Add方法:创建新工作表并将其添加到工作簿中。
Select方法:选择工作表。
Copy方法:复制工作表。
Move方法:将指定工作表移到工作簿的另一位置。
Delete方法:删除指定工作表。
PrintOut方法:打印工作表。
示例:将C盘工作簿中的工作表复制到A盘工作簿中:
Dim VBExcel As Excel.Application
Set VBExcel=CreateObject(&Excel.Application&)
With VBExcel
Workbooks.Open &C:\Temp\Ex1.XLS&
Workbooks.Open&A:\Ex2.XLS&
Workbooks(&Ex1.XLS&).Sheets (&Sales&).Copy
Workbooks(&Ex2.XLS&)
Workbooks(&Ex2.XLS&).Save
Workbooks(&Ex1.XLS&).Close
Workbooks(&Ex2.XLS&).Close
3)使用单元范围
Range对象代表工作表的某一单元格、某一行、某一列、某一选定区域或者某一三维区域。
常用的属性、方法有:
  Range属性:Range (arg)其中arg为A1样式符号,表示单个单元格或单元格区域。
  Cells属性:Cells (row, col )(其中row为行号,col为列号)表示单个单元格。
  ColumnWidth属性:指定区域中所有列的列宽。
  Rowl3eight属性:指定区域中所有行的行宽。
  Value属性:指定区域中所有单元格的值(缺省属性)。
  Formula属性:指定单元格的公式,由A1--样式引用。
  Select方法:选择范围。
  Copy方法:将范围的内容复制到剪贴板。
  C1earContents方法:清除范围的内容。
  Delete方法:删除指定单元范围。
4)使用图表
Chart对象代表工作簿中的图表。该图表既可为嵌人式图表(包含于ChartObject对象中)也可为分立的图表工作表。
常用方法有:
Add方法:新建图表工作表,返回Chart对象。
PrineOut方法:打印图表。
ChartWizard方法:修改给定图表的属性,其语法为:
ChartWizard(Source, Gallery, Format, P1otBy, CategoryLabels,  SeriesLabels, HasLegend, Title, CategoryTitle, ValueTitle, ExtraTitle)
Source:包含新图表的源数据的区域。如省略,将修改活动图表工作表或活动工作表中处于选定状态的嵌人式图表。
Gallery:图表类型,其值可为下列常量之一:xlArea, x1Bar, xlColumn, xlLine, x1Pie, xlRadar,x1XYScatter, xlCombination, x13DArea, x13Dbar,x13DColumn, x13DLine, x13Dpie,x13 Dsurface,xlDoughnut或xlDefaultAutoFormat。
Format:内置自动套用格式的编号。如省略,将选择默认值。
P1otBy:指定系列中的数据是来自行(xlRows)还是列(xlColumns)。
CategoryLabels:表示包含分类标志的源区域内行数或列数的整数。
SeriesLabels:表示包含系列标志的源区域内行数或列数的整数。
HasLegend:若指定True,则图表将具有图例。
Title:图表标题文字。
CategoryTitle:分类轴标题文字。
ValueTitle:数值轴标题文字。
ExtraTitle:三维图表的系列轴标题,或二维图表的第二数值轴标题。
可组合使用Add方法和ChartWizard方法,以创建包含工作表中数据的图表工作表。下例基于工作表&Sheetl&中单元格区域&A1:A20&中的数据生成新的折线图并打印。
With Charts.Add
ChartWizard source:=Worksheets (&sheet1&).Range_
&(&a1:a20&),gallery:=xlLine, title:=&折线图表&
5)使用工作表函数
在VB语句中可使用大部分的Excel工作表函数,可通过WorksheetFunction对象调用Excel工作表函数。下面的Sub过程用Min工作表函数求出指定区域中单元格的最小值,并通过消息框显示结果值。
  Sub UserFunction()
  && Dim myRange As Range
  &&&&&& Set myRange=Worksheets (&Sheet1&).Range(&B2:F10&)
  &&&&&& answer=Application.WorksheetFunction.Min(myRange)
  &&&&&& MsgBox answer
  End Sub
如果使用以区域引用为参数的工作表函数,必须指定一个Range对象。如可用Match工作表函数对A1:A10区域的所有单元格进行搜索。
  Sub FindFirst()
myVar=Application.WorksheetFunction.Match_
(9,orksheets( 1).Range(&A1:A10&),0)
  MsgBox myVar
要在单元格中插人工作表函数,可将该函数指定为对应于Range对象的Formula属性值。在以下示例中,将当前工作簿Sheetl内A1:B3区域的Formula属性指定为RAND工作表函数(此函数产生二个随机数)。
  Sub InsertFormula()
 &&&  Worksheets (&Sheet1& ).Range(&A1:B3&).Formula=&RAND()&
  End Sub
以上简要介绍了Excel对象模型中部分对象及其属性和方法,更详细的信息可参阅Excel 2000帮助中的&Microsoft Excel Visual Basic参考&一节的内容。实际上,Microsoft Office家族的,PowerPoint, Access和Project等应用程序都可以在VB应用程序中调用,其原理和步骤完全相同,只是其对象模型有所不同而已。
首先建立一个窗体(FORM1),在窗体中加入一个DATA控件和一按钮,引用Microsoft /9.shtml' target='_blank' class='article'&Excel类型库:从&工程&菜单中选择&引用&栏;选择Microsoft Excel 9.0 Object L选择&确定&。
在FORM的LOAD事件中加入:
Data1.DatabaseName = 数据库名称
Data1.RecordSource = 表名
Data1.Refresh
在按钮的CLICK事件中加入
  Dim Irow, Icol As Integer
  Dim Irowcount, Icolcount As Integer
  Dim Fldlen() &存字段长度值
  Dim xlApp As Excel.Application
  Dim xlBook As Excel.Workbook
  Dim xlSheet As Excel.Worksheet
  Set xlApp = CreateObject(&Excel.Application&)
  Set xlBook = xlApp.Workbooks.Add
  Set xlSheet = xlBook.Worksheets(1)
  With Data1.Recordset.MoveLast
    If .RecordCount & 1 Then
    && MsgBox (&Error 没有记录!&)
    && Exit Sub
 &   End If
    Irowcount = .RecordCount &记录总数
    Icolcount = .Fields.Count &字段总数
    ReDim Fieldlen(Icolcount).MoveFirst
    For Irow = 1 To Irowcount + 1
     For Icol = 1 To Icolcount
      Select Case Irow
       Case 1 &在Excel中的第一行加标题
     &&&&& xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1).Name
       Case 2 &将数组FLDLEN()存为第一条记录的字段长
       & If IsNull(.Fields(Icol - 1)) = True Then
         & Fieldlen(Icol) = LenB(.Fields(Icol - 1).Name)
        &Else
      &    Fieldlen(Icol) = LenB(.Fields(Icol - 1))
       & End If
       & xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)
       & xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1)
       Case Else
       & Fieldlen1 = LenB(.Fields(Icol - 1))
       & If Fieldlen(Icol) & Fieldlen1 Then
        && xlSheet.Columns(Icol).ColumnWidth = Fieldlen1
          Fieldlen(Icol) = Fieldlen1
       & Else
        && xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)
       & End If
       & xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1)
       End Select
      Next
      If Irow && 1 Then
       If Not .EOF Then .MoveNext
      End If
    Next
   With xlSheet
    .Range(.Cells(1, 1), .Cells(1, Icol - 1)).Font.Name = &黑体&
    .Range(.Cells(1, 1), .Cells(1, Icol - 1)).Font.Bold = True
   .Range(.Cells(1, 1), .Cells(Irow, Icol - 1)).Borders.LineStyle = xlContinuous
   End With
   &&& xlApp.Visible = True
xlBook.Save
  Set xlApp = Nothing
- 综合类网站 -
新浪搜狐网易新华网凤凰网
- 水文行业网站 -
江西水文太湖水文长江水文黄河水文广东水文江苏水文湖南水文浙江水文湖北水文河南水文山东水文广西水文贵州水文南平水文
- 水利行业网站 -
福建水利太湖流域管理局珠江水利委员会长江水利委员会黄河水利委员会
- 政府门户网站 -
福建省发展和改革委员会福建省财政厅福建省人力资源和社会保障厅福建省国土资源厅福建省海洋与渔业厅
- 常用网站 -
网易免费邮箱铁路客户服务中心hao123网站导航

我要回帖

更多关于 火星情报局3百度云 的文章

 

随机推荐