设为首页
|
收藏本站
|
繁体中文
|
手机版
整站搜索
资讯
技巧
源码
行业
设备(待改)
资源
信息库(待改)
产品
作品(待改)
活动
培训(视频)
平台(待改)
二级(待改)
互动(作废)
交易
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 的一..
金额转换的代码
VBA在Excel 200..
ActiveX在Excel..
如何禁止EXCEL的屏幕刷..
Excel XP中图片的智..
最新文章
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中的运用
•
检查重复字段值的方法
热门文章
[2005-02-04]
EXCEL离开单元格得时候数值自动*100
[2005-02-04]
如何用Excel读取,修改,删除access数据
[2013-08-20]
【技巧】excel文件破解密码
[2005-01-14]
金额转换的代码
[2013-07-27]
【Excel VBA】FileDialog 用法之 打开对话框获得文件夹路径
[2005-03-05]
VBA在Excel 2000中的应用一例
热门产品