设为首页
|
收藏本站
|
繁体中文
|
手机版
整站搜索
资讯
技巧
源码
行业
设备(待改)
资源
信息库(待改)
产品
作品(待改)
活动
培训(视频)
平台(待改)
二级(待改)
互动(作废)
交易
Access培训
-
Access开发平台
-
Access行业开发
首页
资讯
技巧
源码
行业
资源
活动
关于
技巧
ACCESS数据库
启动/设置/选项/背景
修复/压缩
安全/加密/解密
快捷键
版本升级/其它等
数据表
命名方式/设计规范
表设计
查询
Sql语言基础
选择查询
更新查询
删除查询
追加查询
生成表查询
交叉表查询
SQL特定查询
查询参数
查询综合应用
界面/窗体/控件
标签
文本框
命令按钮
组合框/列表框
选项组/复选框/选项按钮
选项卡
子窗体
窗体本身/综合应用
其它
报表打印
报表设计
高级报表
模块/函数/VBA/API/系统
VBA基础
内置函数
调试/跟踪/Debug
模块/类模块
API/COM/系统相关
字符数字日期
网络通信游戏
加密解密安全
文件处理
经典算法
宏/菜单/工具栏/功能区
宏/脚本
菜单/工具栏
功能区/Ribbon
图表/图形/图像/多媒体
图表
图形/图像
音频
视频/动画
DAO/链接表/ADO/ADP
DAO/链接表/ODBC
ADO/RDO
ADP
ActiveX/第三方控件/插件
Treeview树控件
ListView列表控件
Toolbar工具栏控件
微软其它控件
Dbi-Tech
CodeJock
Grid++Report
FastReport
ComponentOne
加载项/插件/Addin
OFFICE集成/导入导出/交互
Excel导入导出/交互
Word导入导出/交互
PPT交互
Outlook控制/邮件
Text文本文件/INI/CSV
PDF/SWF/XML格式
CAD格式
Sharepoint/其它Office
SqlServer/其它数据库
表
视图
存储过程/触发器
函数
用户/权限/安全
调试/维护
SqlServer其它/综合
发布/打包/文档/帮助
开发版/运行时
打包/发布/部署
开发文档/帮助制作
Access完整行业系统
采购管理系统
销售管理系统
仓库管理系统
人力资源管理HRM
CRM管理系统
MRP/ERP管理系统
BRP/流程优化
其它管理系统
心得/经验/绝招
其它/杂项
Excel技巧
Excel应用与操作
Excel开发编程
Word技巧
Word应用与操作
Word开发编程
Outlook技巧
Outlook应用与操作
Outlook开发编程
热门文章
EXCEL离开单元格得时候..
如何用ado操作Excel
VBA在Excel 200..
用Excel制作公交向导
实用的GET函数
如何判断一个工作表里有没有..
最新文章
Excel VBA编辑语句..
【技巧】excel文件破解..
【Excel VBA】Fi..
实用的GET函数
日期改为显示星期几的自定义..
VBA在Excel 200..
联系方式
Access交流网(免费Access交流)
QQ:18449932
网 址:
www.access-cn.com
当前位置:
首页
>
技巧
>
Excel技巧
>
Excel开发编程
Excel开发编程
Excel中 BASIC 程序的运行
在微软的电子表格软件EXCEL中,附有一个功能很强的编程语言-Visual Basic for Applications(本文中简称为VBA)。这实际上是微软的Visual Basic的化身,微软从Visual Basic中删去了表格设计器(Forms Designer)后,将它附属于EXCEL,并用对话表取代了表格设计器。另外,微软使VBA能够存取EXCEL的所有命令和对象(例如单元格、工作表等)。正因为如此,VBA可以控制EXCEL的所有功能,所以VBA是兼容了BASIC编程语言的命令和语法的EXCEL应用软件的超级宏语言。
在EXCEL和VBA出现之前,许多计算机用户都有一些用BASIC语言编写的应用程序。当计算机的操作平台升级为Windows,办公软件变成Office后,Windows界面下的软件直观、易用,使得人们再用那些DOS下BASIC程序时感觉十分别扭。所幸的是,BASIC和VAB同出于微软公司,使得我们能比较容易地将这些过去的程序转为EXCEL中的VBA。转化后的程序利用EXCEL的界面输入输出数据,既直观又方便,有着源程序不可比拟的优点。以下就介绍一下如何完成这个从BASIC到VBA的转换。
在EXCEL里,一段程序称为一个“宏”。记录程序的界面叫“模块表”。要把BASIC的源程序输入EXCEL,首先要找到模块表。模块表的调入在Office 95中与Office 97略有不同,这里以Office 95中的EXCEL为例进行叙述。在EXCEL中按以下顺序选菜单:选“插入”,再选“宏表”,再选“模块表”,这时就会出现一张空白的模块表。
在模块表里输入程序,最简单的方法是把源程序直接用键盘输入。如果你的源程序能够被Office中的WORD或Windows中的书写器、写字板等读出,那么就可利用“复制”、“粘贴”的功能将源程序贴到模块表里。在许多情况下,WORD读出来的BASIC源程序往往是一些不可识别的字符,无法直接复制。这里介绍另一种复制方法:在Windows下选中“MS-DOS方式”,就会打开一个DOS的窗口,在这个窗口里运行BASIC编程语言(如GWBASIC等)。加载(LOAD)想要转换的源程序,用BASIC中的LIST命令就会在窗口中看到若干行源程序。将鼠标移到窗口的上部工具栏里点击“标记”键,窗口的左上角会出现一个光标,在按住SHIFT键的同时用方向键移动光标到窗口右下角,这时整个窗口都被点亮,再移动鼠标到窗口上部的工具栏点击“复制”键,再将DOS窗口极小化,打开EXCEL,调出模块表,用EXCEL里的“粘贴”键就可把DOS窗口里的源程序粘在模块表里,不断地重复这一过程就可把整个源程序复制到EXCEL里。
源程序进入模块表后就可以对其进行重新编辑。因为VBA是兼容了BASIC编程语言的命令和语法的宏语言,所以BASIC的大部分程序行不用改写就可以直接运行,要改动的只有以下几个方面:
1.给这段程序(宏)起个名字。比如起名为test,则在程序的开头加上Sub test()语句,在程序的结尾加上End Sub语句。
2.注意变量与数组不要重名。在BASIC中,允许有一个变量A和一个数组A(10)同时存在,而VBA中必须把其中一个改为A1或AA。
3.输入语句。在BASIC中,数据的输入是用INPUT或READ语句;在VBA中,可以把要输入的数据放到EXCEL工作表指定的单元格里,然后用对象存储的CELLS方法去读这些数据。例如在BASIC中:
100 READ A,B
120 DATA 10,20
表示将数值10和20分别赋予变量A和B;在VB中:
A = Worksheets ("Sheet1").Cells(1,1)
B = Worksheets ("Sheet1").Cells(1,2)
表示把EXCEL工作表Sheet1中第一行第一列单元格(A1单元)中的值赋给变量A;第一行第二列单元格(B1单元)中的值赋给变量B。只要在运行程序前将数值10和20分别放在A1和B1单元格里,其效果同上面的READ语句是一样的。
在程序的运行中,有时需要中间停顿一下,根据前一段运行情况再输入一些数据,在BASIC中,这种情况一般是用INPUT语句;在VBA中,可采取在输入数据之前设一个STOP语句的方法,然后在指定的单元格里填入要输入的数据,再让程序继续运行(在EXCEL菜单中选择“继续运行”即可)。或者,你也可以用InputBox( )函数创建一个对话框进行输入。下面就是创建对话框的语句:
X1 = "请输入金额"
X2 = "输入对话框"
X = InputBox(X1,X2)
当程序运到这一句时,屏幕上会出现这样一个对话框:
输入对话框
请输金额 确定
取消
只要你在框中输入文字,用鼠标点一下“确定”,这时变量X的值就等于你输入的文字。程序继续运行。值得注意的是,如果你想输入的是数字,则必须用Val()函数转换一下,即在上述三句后多加一个语句:
X = Val(X)
4.输出语句。在BASIC中,程序运行结果的输出一般用的是PRINT或LPRINT语句,例如:
PRINT C 表示将变量C的值显示在屏幕上。
LPRINT D 表示将变量D的值输出到打印机。
有时还用LPRINT语句打印出各种曲线。
在VBA中,可以用对象存储的CELLS方法将变量的值存放在EXCEL的某个工作表的某单元格上。为了使输出与输入的数据分开,输出的数据可以放在与输入数据不同的表上,如输入放在Sheet1上,输出就放在Sheet2上。如下例:
Worksheets("Sheet2").Cells(2,5)=C
Worksheets("Sheet2").Cells(2,6)=D
分别表示将C和D 的值放在Sheet1表的第二行第五列(E2单元)和第二行第六列(F2单元)上。程序运行后,在Sheet2表上就可看到输出的结果。然后利用EXCEL丰富的图表生成功能将输出的数字结果生成各种图表。得到的效果要比BASIC打印出的曲线精彩得多。
5.自定义函数。在VB中自定义函数的定义比在BASIC中的要复杂一些,它更像一段子程序,但调用的语句是一样的。例如,把公式Y=Y1×Y2×Y3设为一个名为Y的自定义函数,在BASIC中应是:
DEF Y(Y1,Y2,Y3)=Y1*Y2*Y3
在VB中则写成:
Function Y(Y1,Y2,Y3)
Y=Y1*Y2*Y3
End Function
并且这一段函数程序应放在主程序(宏)的前面,即放在Sub test()的前面。
按上述方法改好后,程序即可运行。在EXCEL菜单中,选“工具”,再选“宏”,这时出现一个对话框,在对话框里的“宏名/引用”框里,用鼠标选中要运行的宏的名字(如上面的test),然后单击“执行”按钮就可运行了。你也可以设定一个按钮将程序与按钮关联起来,单击按钮就可以运行程序。关于如何设定按钮,请参阅有关EXCEL的书籍。如果想要使程序更简短高效,那就需要进一步学习VBA编程,充分利用VB的各种命令、函数和控制手段进行编程。顺便说一句,QBASIC的源程序也同样可以转换,但QBASIC的源程序可以在WORD中直接显示,这样,复制到EXCEL中就更加方便。例如在BASIC中:
100 READ A,B
120 DATA 10,20
表示将数值10和20分别赋予变量A和B;在VB中:
A = Worksheets ("Sheet1").Cells(1,1)
B = Worksheets ("Sheet1").Cells(1,2)
表示把EXCEL工作表Sheet1中第一行第一列单元格(A1单元)中的值赋给变量A;第一行第二列单元格(B1单元)中的值赋给变量B。只要在运行程序前将数值10和20分别放在A1和B1单元格里,其效果同上面的READ语句是一样的。
在程序的运行中,有时需要中间停顿一下,根据前一段运行情况再输入一些数据,在BASIC中,这种情况一般是用INPUT语句;在VBA中,可采取在输入数据之前设一个STOP语句的方法,然后在指定的单
发布人:Kevin Zhou-Excel Home
分享到:
点击次数:
更新时间:2005-02-11 11:48:12 【
打印此页
】 【
关闭
】
上一条:
检查重复字段值的方法
下一条:
Excel XP中图片的智能刷新
相关文章
•
Excel VBA编辑语句集300条
•
【技巧】excel文件破解密码
•
【Excel VBA】FileDialog 用法之 打开对话框获得文件夹路径
•
实用的GET函数
•
日期改为显示星期几的自定义涵数
•
VBA在Excel 2000中的应用一例
•
ActiveX在Excel中的运用
•
检查重复字段值的方法
热门文章
[2004-09-21]
在不打开EXCEL文件的前提下读取数据方法一
[2005-02-04]
如何用Excel读取,修改,删除access数据
[2005-02-04]
如何用ado操作Excel
[2013-10-22]
Excel VBA编辑语句集300条
[2005-02-04]
如何判断Excel表格是否正处于编辑模式
[2013-07-27]
【Excel VBA】FileDialog 用法之 打开对话框获得文件夹路径
热门产品