資源描述:
《Excel宏功能簡(jiǎn)單應(yīng)用介紹》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Excel宏功能簡(jiǎn)單應(yīng)用介紹所謂宏,就是一組指令集,通過(guò)執(zhí)行類(lèi)似批處理的一組命令,來(lái)完成某種功能。MicrosoftOffice的組件都可以支持宏(Macro)的操作,而Office的宏是指使用VBScript指令集(VB編程語(yǔ)言的子集,可以使用VB的常用語(yǔ)句)編寫(xiě)的針對(duì)Office組件的小程序。利用宏,我們可以完成很多程序原本并不支持的特殊應(yīng)用,比如完成某種特殊的數(shù)據(jù)計(jì)算,或者文檔的特殊格式排版等等。下面,就讓我們舉個(gè)簡(jiǎn)單的例子,看看宏在Excel中如何應(yīng)用?! ∮羞@樣一個(gè)Excel表格,工作表Sheet1中的第2行的B列開(kāi)始至D列的連續(xù)單元格中是一組共3
2、個(gè)數(shù)據(jù),第A列的第3行開(kāi)始至第6行的連續(xù)單元格中是一組共4個(gè)日期,要編寫(xiě)一段宏來(lái)完成這樣的工作:將Sheet1第2行的數(shù)據(jù)由左至右依次縱向復(fù)制到Sheet2的B列(從B2開(kāi)始)中,然后將這組復(fù)制完的3個(gè)數(shù)據(jù)所在行的A列都填入Sheet1的A3單元格里面的日期,完成后重復(fù)之前的操作,將Sheet1第2行的數(shù)據(jù)再次復(fù)制到Sheet2的B列,這次是從上次復(fù)制的B列數(shù)據(jù)下面的空白單元格,也就是B5開(kāi)始,然后再在這次復(fù)制的3個(gè)數(shù)據(jù)的左側(cè)A列填入Sheet1的A4單元格的日期,這樣反復(fù)循環(huán),直到Sheet1的A列的所有日期都出現(xiàn)在了Sheet2的A列里面,也就是Shee
3、t1的第2行數(shù)據(jù)在Sheet2的B列里面被復(fù)制了4次為止?! 【帉?xiě)宏只要有一點(diǎn)點(diǎn)簡(jiǎn)單的VB編程知識(shí)就可以了,并不一定需要很高深的編程技巧,很多時(shí)候我們需要的只是一些重復(fù)的操作,我們可以通過(guò)宏的錄制功能來(lái)錄制一次需要的操作過(guò)程,然后再對(duì)已經(jīng)錄制的宏進(jìn)行簡(jiǎn)單的修改,就能得到所需要的宏了?! ?duì)于上面這個(gè)事例,實(shí)際上只是簡(jiǎn)單的復(fù)制操作,所以甚至連錄制的工作都可以省掉了。因?yàn)樗枰牟僮魇且粋€(gè)循環(huán)的過(guò)程,所以我們可以使用一個(gè)循環(huán)語(yǔ)句來(lái)編寫(xiě)程序,這樣只要寫(xiě)出一個(gè)完成的復(fù)制過(guò)程,一次循環(huán)就可以達(dá)到我們的目的了。循環(huán)判斷的依據(jù)就是是否Sheet1的A列所有日期都復(fù)制過(guò)了,
4、因?yàn)閿?shù)據(jù)都是連續(xù)排列的,艘以我們可以把Sheet1的A列某個(gè)單元格是否有數(shù)據(jù)作為進(jìn)入循環(huán)的條件,依次復(fù)制日期,直到A7這個(gè)沒(méi)有數(shù)據(jù)的空單元格,循環(huán)結(jié)束,我們的工作也就完成了。至于循環(huán)里面的內(nèi)容,我們同樣再嵌套一個(gè)循環(huán),只不過(guò)這次是判斷第2行的數(shù)據(jù)是否全都復(fù)制完成了,在這個(gè)循環(huán)里面自然就是單元格數(shù)據(jù)和日期的復(fù)制了。 SubMacro1() Dimst1y Dimst2y Dimst1x st1y=3 st2y=2 DoWhileSheets(“Sheet1”).Cells(st1y,"A")<>"" st1x=2 DoWhileSheets(
5、“Sheet1”).Cells(2,st1x)<>"" Sheets(“Sheet2”).Cells(st2y,"B")=Sheets(“Sheet1”).Cells(2,st1x) Sheets(“Sheet2”).Cells(st2y,"A")=Sheets(“Sheet1”).Cells(st1y,"A") st1x=st1x+1 st2y=st2y+1 Loop st1y=st1y+1 Loop EndSub 上面就是我編寫(xiě)的這個(gè)宏的所有內(nèi)容,讓我再來(lái)詳細(xì)說(shuō)說(shuō)每個(gè)命令的作用: 第一行的“SubMacro1()”和最后一行的“End
6、Sub”是整個(gè)宏的開(kāi)始和結(jié)尾標(biāo)志,Macro1就是這個(gè)宏的名字。 “Dim”是定義一個(gè)變量,“st1y”是我定義的Sheet1的Y軸坐標(biāo)變量,同理,“st1x”就是Sheet1的X軸坐標(biāo)變量,“st2y”自然是Sheet2的Y軸坐標(biāo)變量了?! 皊t1y=3”這是一個(gè)賦值語(yǔ)句,下面的“Sheets("Sheet2").Cells(st2y,"b")=Sheets("Sheet1").Cells(2,st1x)”這句也是,它們的作用都是將等號(hào)后面的數(shù)值賦予給等號(hào)前面的變量,就是說(shuō),等號(hào)前面必須是一個(gè)變量而不能是常量。這里分別給st1y和st2y賦予初始值3和
7、2,代表他們分別是從第3行(Sheet1的日期是從A3開(kāi)始的)和第2行開(kāi)始?! 癉oWhile”就是我們整個(gè)程序中最重要的循環(huán)語(yǔ)句了,“Sheets("Sheet1").Cells(st1y,"A")”是代表的Sheet1這個(gè)工作表的某個(gè)單元格,Cells后的括號(hào)內(nèi)就是單元格的坐標(biāo),格式是Cells(Y軸,X軸),那個(gè)A3這個(gè)單元格就應(yīng)該表示為Cells(3,"A"),這里注意,字符和字符串常量都必須用引號(hào)括起來(lái),另外,X周除了用字母標(biāo)示以外,也可以使用對(duì)應(yīng)的數(shù)字來(lái)表示。第一個(gè)循環(huán)就是判斷是否在Sheet1的A列的某個(gè)單元格碰到了空白格,如果沒(méi)有,就進(jìn)入循
8、環(huán)執(zhí)行里面的程序。與這個(gè)“DoWhile”相對(duì)應(yīng)的就