国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Excel中Basic程序的運(yùn)行

2019-11-18 17:49:45
字體:
供稿:網(wǎng)友
在微軟的電子表格軟件Excel中,附有一個(gè)功能很強(qiáng)的編程語言-VisualBasicforapplications(本文中簡(jiǎn)稱為VBA)。這實(shí)際上是微軟的VisualBasic的化身,微軟從VisualBasic中刪去了表格設(shè)計(jì)器(FormsDesigner)后,將它附屬于EXCEL,并用對(duì)話表取代了表格設(shè)計(jì)器。另外,微軟使VBA能夠存取EXCEL的所有命令和對(duì)象(例如單元格、工作表等)。正因?yàn)槿绱耍琕BA可以控制EXCEL的所有功能,所以VBA是兼容了BASIC編程語言的命令和語法的EXCEL應(yīng)用軟件的超級(jí)宏語言。
  在EXCEL和VBA出現(xiàn)之前,許多計(jì)算機(jī)用戶都有一些用BASIC語言編寫的應(yīng)用程序。當(dāng)計(jì)算機(jī)的操作平臺(tái)升級(jí)為Windows,辦公軟件變成Office后,Windows界面下的軟件直觀、易用,使得人們?cè)儆媚切〥OS下BASIC程序時(shí)感覺十分別扭。所幸的是,BASIC和VAB同出于微軟公司,使得我們能比較容易地將這些過去的程序轉(zhuǎn)為EXCEL中的VBA。轉(zhuǎn)化后的程序利用EXCEL的界面輸入輸出數(shù)據(jù),既直觀又方便,有著源程序不可比擬的優(yōu)點(diǎn)。以下就介紹一下如何完成這個(gè)從BASIC到VBA的轉(zhuǎn)換。

  在EXCEL里,一段程序稱為一個(gè)“宏”。記錄程序的界面叫“模塊表”。要把BASIC的源程序輸入EXCEL,首先要找到模塊表。模塊表的調(diào)入在Office95中與Office97略有不同,這里以O(shè)ffice95中的EXCEL為例進(jìn)行敘述。在EXCEL中按以下順序選菜單:選“插入”,再選“宏表”,再選“模塊表”,這時(shí)就會(huì)出現(xiàn)一張空白的模塊表。

  在模塊表里輸入程序,最簡(jiǎn)單的方法是把源程序直接用鍵盤輸入。如果你的源程序能夠被Office中的Word或Windows中的書寫器、寫字板等讀出,那么就可利用“復(fù)制”、“粘貼”的功能將源程序貼到模塊表里。在許多情況下,WORD讀出來的BASIC源程序往往是一些不可識(shí)別的字符,無法直接復(fù)制。這里介紹另一種復(fù)制方法:在Windows下選中“MS-DOS方式”,就會(huì)打開一個(gè)DOS的窗口,在這個(gè)窗口里運(yùn)行BASIC編程語言(如GWBASIC等)。加載(LOAD)想要轉(zhuǎn)換的源程序,用BASIC中的LIST命令就會(huì)在窗口中看到若干行源程序。將鼠標(biāo)移到窗口的上部工具欄里點(diǎn)擊“標(biāo)記”鍵,窗口的左上角會(huì)出現(xiàn)一個(gè)光標(biāo),在按住SHIFT鍵的同時(shí)用方向鍵移動(dòng)光標(biāo)到窗口右下角,這時(shí)整個(gè)窗口都被點(diǎn)亮,再移動(dòng)鼠標(biāo)到窗口上部的工具欄點(diǎn)擊“復(fù)制”鍵,再將DOS窗口極小化,打開EXCEL,調(diào)出模塊表,用EXCEL里的“粘貼”鍵就可把DOS窗口里的源程序粘在模塊表里,不斷地重復(fù)這一過程就可把整個(gè)源程序復(fù)制到EXCEL里。

  源程序進(jìn)入模塊表后就可以對(duì)其進(jìn)行重新編輯。因?yàn)閂BA是兼容了BASIC編程語言的命令和語法的宏語言,所以BASIC的大部分程序行不用改寫就可以直接運(yùn)行,要改動(dòng)的只有以下幾個(gè)方面:

  1.給這段程序(宏)起個(gè)名字。比如起名為test,則在程序的開頭加上Subtest()語句,在程序的結(jié)尾加上EndSub語句。

  2.注意變量與數(shù)組不要重名。在BASIC中,允許有一個(gè)變量A和一個(gè)數(shù)組A(10)同時(shí)存在,而VBA中必須把其中一個(gè)改為A1或AA。

  3.輸入語句。在BASIC中,數(shù)據(jù)的輸入是用INPUT或READ語句;在VBA中,可以把要輸入的數(shù)據(jù)放到EXCEL工作表指定的單元格里,然后用對(duì)象存儲(chǔ)的CELLS方法去讀這些數(shù)據(jù)。例如在BASIC中:

  100READA,B

  120DATA10,20

  表示將數(shù)值10和20分別賦予變量A和B;在VB中:

  A=Worksheets("Sheet1").Cells(1,1)

  B=Worksheets("Sheet1").Cells(1,2)

  表示把EXCEL工作表Sheet1中第一行第一列單元格(A1單元)中的值賦給變量A;第一行第二列單元格(B1單元)中的值賦給變量B。只要在運(yùn)行程序前將數(shù)值10和20分別放在A1和B1單元格里,其效果同上面的READ語句是一樣的。

  在程序的運(yùn)行中,有時(shí)需要中間停頓一下,根據(jù)前一段運(yùn)行情況再輸入一些數(shù)據(jù),在BASIC中,這種情況一般是用INPUT語句;在VBA中,可采取在輸入數(shù)據(jù)之前設(shè)一個(gè)STOP語句的方法,然后在指定的單元格里填入要輸入的數(shù)據(jù),再讓程序繼續(xù)運(yùn)行(在EXCEL菜單中選擇“繼續(xù)運(yùn)行”即可)。或者,你也可以用InputBox()函數(shù)創(chuàng)建一個(gè)對(duì)話框進(jìn)行輸入。下面就是創(chuàng)建對(duì)話框的語句:

  X1="請(qǐng)輸入金額"

  X2="輸入對(duì)話框"

  X=InputBox(X1,X2)

  當(dāng)程序運(yùn)到這一句時(shí),屏幕上會(huì)出現(xiàn)這樣一個(gè)對(duì)話框:

  輸入對(duì)話框

  請(qǐng)輸金額確定

  取消

  只要你在框中輸入文字,用鼠標(biāo)點(diǎn)一下“確定”,這時(shí)變量X的值就等于你輸入的文字。程序繼續(xù)運(yùn)行。值得注意的是,如果你想輸入的是數(shù)字,則必須用Val()函數(shù)轉(zhuǎn)換一下,即在上述三句后多加一個(gè)語句:

  X=Val(X)

  4.輸出語句。在BASIC中,程序運(yùn)行結(jié)果的輸出一般用的是
  分別表示將C和D的值放在Sheet1表的第二行第五列(E2單元)和第二行第六列(F2單元)上。程序運(yùn)行后,在Sheet2表上就可看到輸出的結(jié)果。然后利用EXCEL豐富的圖表生成功能將輸出的數(shù)字結(jié)果生成各種圖表。得到的效果要比BASIC打印出的曲線精彩得多。

  5.自定義函數(shù)。在VB中自定義函數(shù)的定義比在BASIC中的要復(fù)雜一些,它更像一段子程序,但調(diào)用的語句是一樣的。例如,把公式Y(jié)=Y1×Y2×Y3設(shè)為一個(gè)名為Y的自定義函數(shù),在BASIC中應(yīng)是:

  DEFY(Y1,Y2,Y3)=Y1*Y2*Y3*

  在VB中則寫成:

  FunctionY(Y1,Y2,Y3)

  Y=Y1*Y2*Y3

  EndFunction

  并且這一段函數(shù)程序應(yīng)放在主程序(宏)的前面,即放在Subtest()的前面。

  按上述方法改好后,程序即可運(yùn)行。在EXCEL菜單中,選“工具”,再選“宏”,這時(shí)出現(xiàn)一個(gè)對(duì)話框,在對(duì)話框里的“宏名/引用”框里,用鼠標(biāo)選中要運(yùn)行的宏的名字(如上面的test),然后單擊“執(zhí)行”按鈕就可運(yùn)行了。你也可以設(shè)定一個(gè)按鈕將程序與按鈕關(guān)聯(lián)起來,單擊按鈕就可以運(yùn)行程序。關(guān)于如何設(shè)定按鈕,請(qǐng)參閱有關(guān)EXCEL的書籍。如果想要使程序更簡(jiǎn)短高效,那就需要進(jìn)一步學(xué)習(xí)VBA編程,充分利用VB的各種命令、函數(shù)和控制手段進(jìn)行編程。順便說一句,QBASIC的源程序也同樣可以轉(zhuǎn)換,但QBASIC的源程序可以在WORD中直接顯示,這樣,復(fù)制到EXCEL中就更加方便。->


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 元朗区| 高青县| 襄垣县| 高要市| 澜沧| 山东省| 江北区| 阳泉市| 北票市| 岑溪市| 临颍县| 万州区| 信阳市| 晋江市| 永春县| 西乡县| 隆德县| 峨眉山市| 清新县| 汽车| 龙口市| 蒙自县| 津南区| 阳山县| 镇沅| 无锡市| 汽车| 喀喇| 南开区| 永城市| 罗源县| 东乡县| 阳信县| 湘潭县| 双流县| 西城区| 雅安市| 山阳县| 山阳县| 青河县| 措勤县|