VBA入門(mén)實(shí)例講解_第1頁(yè)
VBA入門(mén)實(shí)例講解_第2頁(yè)
VBA入門(mén)實(shí)例講解_第3頁(yè)
VBA入門(mén)實(shí)例講解_第4頁(yè)
VBA入門(mén)實(shí)例講解_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第一章Excel應(yīng)用程序?qū)ο?Application對(duì)象)及其常用方法基本操作應(yīng)用示例示例01-01:體驗(yàn)開(kāi)/關(guān)屏幕更新(ScreenUpdating屬性)Sub關(guān)閉屏幕更新()MsgBox"順序切換工作表Sheet1→Sheet2→Sheet3→Sheet2,先開(kāi)啟屏幕更新,然后關(guān)閉屏幕更新"Worksheets(1).SelectMsgBox"目前屏幕中顯示工作表Sheet1"Application.ScreenUpdating=TrueWorksheets(2).SelectMsgBox"顯示Sheet2了嗎?"Worksheets(3).SelectMsgBox"顯示Sheet3了嗎?"Worksheets(2).SelectMsgBox"下面與前面執(zhí)行的程序代碼相同,但關(guān)閉屏幕更新功能"Worksheets(1).SelectMsgBox"目前屏幕中顯示工作表Sheet1"&Chr(10)&"關(guān)屏屏幕更新功能"Application.ScreenUpdating=FalseWorksheets(2).SelectMsgBox"顯示Sheet2了嗎?"Worksheets(3).SelectMsgBox"顯示Sheet3了嗎?"Worksheets(2).SelectApplication.ScreenUpdating=TrueEndSub示例說(shuō)明:ScreenUpdating屬性用來(lái)控制屏幕更新。當(dāng)運(yùn)行一個(gè)宏程序處理涉及到多個(gè)工作表或單元格中的大量數(shù)據(jù)時(shí),若沒(méi)有關(guān)閉屏幕更新,則會(huì)占用CPU的處理時(shí)間,從而降低程序的運(yùn)行速度,而關(guān)閉該屬性則可顯著提高程序運(yùn)行速度。Application對(duì)象代表整個(gè)MicrosoftExcel應(yīng)用程序,帶有175個(gè)屬性和52個(gè)方法,可以設(shè)置整個(gè)應(yīng)用程序的環(huán)境或配置應(yīng)用程序。示例01-02:使用狀態(tài)欄(StatusBar屬性)

示例01-03:處理光標(biāo)(Cursor屬性)SubtestStatusBar()Application.DisplayStatusBar=True'開(kāi)啟狀態(tài)欄顯示'賦值狀態(tài)欄顯示的文本Application.StatusBar=EndSub示例說(shuō)明:StatusBar屬性用來(lái)指定顯示在狀態(tài)欄上的信息。若不想再顯示狀態(tài)欄文本,可使用Application.StatusBar=False語(yǔ)句關(guān)閉狀態(tài)欄顯示,也可以在程序開(kāi)始將原先的狀態(tài)欄設(shè)置存儲(chǔ),如使用語(yǔ)句oldStatusBar=Application.DisplayStatusBar將狀態(tài)欄原來(lái)的信息存儲(chǔ)在變量oldStatusBar,在程序運(yùn)行完成或退出時(shí),將變量重新賦值給狀態(tài)欄,如使用語(yǔ)句Application.DisplayStatusBar=oldStatusBar,以恢復(fù)狀態(tài)欄原狀(01-2)SubViewCursors()Application.Cursor=xlNorthwestArrowMsgBox"您將使用箭頭光標(biāo),切換到Excel界面查看光標(biāo)形狀"Application.Cursor=xlIBeamMsgBox"您將使用工形光標(biāo),切換到Excel界面查看光標(biāo)形狀"Application.Cursor=xlWaitMsgBox"您將使用等待形光標(biāo),切換到Excel界面查看光標(biāo)形狀"Application.Cursor=xlDefaultMsgBox"您已將光標(biāo)恢復(fù)為缺省狀態(tài)"EndSub(01-3)示例01-04:獲取系統(tǒng)信息

示例01-05:退出復(fù)制/剪切模式(CutCopyMode屬性)SubGetSystemInfo()MsgBox"Excel版本信息為:"&Application.CalculationVersionMsgBox"Excel當(dāng)前允許使用的內(nèi)存為:"&Application.MemoryFreeMsgBox"Excel當(dāng)前已使用的內(nèi)存為:"&Application.MemoryUsedMsgBox"Excel可以使用的內(nèi)存為:"&Application.MemoryTotalMsgBox"本機(jī)操作系統(tǒng)的名稱(chēng)和版本為:"&Application.OperatingSystemMsgBox"本產(chǎn)品所登記的組織名為:"&Application.OrganizationNameMsgBox"當(dāng)前用戶(hù)名為:"&Application.UserNameMsgBox"當(dāng)前使用的Excel版本為:"&Application.VersionEndSub示例說(shuō)明:可以使用給UserName屬性賦值以設(shè)置用戶(hù)名稱(chēng)。(01-4)SubexitCutCopyMode()Application.CutCopyMode=FalseEndSub示例說(shuō)明:退出復(fù)制/剪切模式后,在程序運(yùn)行時(shí)所進(jìn)行的復(fù)制或剪切操作不會(huì)在原單元格區(qū)域留下流動(dòng)的虛框線(xiàn)。需要提醒的是,在程序運(yùn)行完后,應(yīng)使用Application.CutCopyMode=False語(yǔ)句恢復(fù)該屬性的默認(rèn)設(shè)置。(01-5)示例01-06:禁止彈出警告信息(DisplayAlerts屬性)

示例01-07:將Excel全屏幕顯示

示例01-08:Excel啟動(dòng)的文件夾路徑SubtestAlertsDisplay()Application.DisplayAlerts=FalseEndSub示例說(shuō)明:在程序運(yùn)行過(guò)程中,有時(shí)由于Excel本身設(shè)置的原因,會(huì)彈出對(duì)話(huà)框,從而中斷程序的運(yùn)行,您可以在程序之前加上Application.DisplayAlerts=False語(yǔ)句以禁止彈出這些對(duì)話(huà)框而不影響程序正常運(yùn)行。需要注意的是,在程序運(yùn)行結(jié)束前,應(yīng)使DisplayAlerts屬性恢復(fù)為缺省狀態(tài),即使用語(yǔ)句Application.DisplayAlerts=True。該屬性的默認(rèn)設(shè)置為T(mén)rue,當(dāng)將該屬性設(shè)置為False時(shí),Excel會(huì)使直接使用對(duì)話(huà)框中默認(rèn)的選擇,從而不會(huì)因?yàn)閺棾鰧?duì)話(huà)框而影響程序運(yùn)行。(01-6)SubtestFullScreen()MsgBox"運(yùn)行后將Excel的顯示模式設(shè)置為全屏幕"Application.DisplayFullScreen=TrueMsgBox"恢復(fù)為原來(lái)的狀態(tài)"Application.DisplayFullScreen=FalseEndSub(01-7)SubExcelStartfolder()MsgBox"Excel啟動(dòng)的文件夾路徑為:"&Chr(10)&Application.StartupPathEndSub(01-8)示例01-09:打開(kāi)最近使用過(guò)的文檔

示例01-10:打開(kāi)文件(FindFile方法)

示例01-11:文件對(duì)話(huà)框操作(FileDialog屬性)SubOpenRecentFiles()MsgBox"顯示最近使用過(guò)的第三個(gè)文件名,并打開(kāi)該文件"MsgBox"最近使用的第三個(gè)文件的名稱(chēng)為:"&Application.RecentFiles(3).NameApplication.RecentFiles(3).OpenEndSub(01-9)SubFindFileOpen()OnErrorResumeNextMsgBox"請(qǐng)打開(kāi)文件",vbOKOnly+vbInformation,"打開(kāi)文件"IfNotApplication.FindFileThenMsgBox"文件未找到",vbOKOnly+vbInformation,"打開(kāi)失敗"EndIfEndSub示例說(shuō)明:本示例將顯示“打開(kāi)”文件對(duì)話(huà)框,若用戶(hù)未打開(kāi)文件(即點(diǎn)擊“取消”按鈕),則會(huì)顯示“打開(kāi)失敗”信息框。示例中使用了FindFile方法,用來(lái)顯示“打開(kāi)”對(duì)話(huà)框并讓用戶(hù)打開(kāi)一個(gè)文件。如果成功打開(kāi)一個(gè)新文件,則該值為T(mén)rue。如果用戶(hù)取消了操作并退出該對(duì)話(huà)框,則該值為False。(01-10)SubUseFileDialogOpen()DimlngCountAsLong'開(kāi)啟"打開(kāi)文件"對(duì)話(huà)框WithApplication.FileDialog(msoFileDialogOpen).AllowMultiSelect=True.Show'顯示所選的每個(gè)文件的路徑ForlngCount=1To.SelectedItems.CountMsgBox.SelectedItems(lngCount)NextlngCountEndWithEndSub示例說(shuō)明:本示例顯示“打開(kāi)文件”對(duì)話(huà)框,當(dāng)用戶(hù)在其中選擇一個(gè)或多個(gè)文件后,將依次顯示每個(gè)文件的路徑。其中,F(xiàn)ileDialog屬性返回打開(kāi)和保存對(duì)話(huà)框中一系列對(duì)象的集合,您可以對(duì)該集合對(duì)象的屬性進(jìn)行進(jìn)一步的設(shè)置,如上例中的AllowMultiSelect屬性設(shè)置為T(mén)rue將允許用戶(hù)選擇多個(gè)文件。(01-11)示例01-12:保存Excel的工作環(huán)境

示例01-13:改變Excel工作簿名字(Caption屬性)

示例01-14:使用InputBox方法

示例01-15:設(shè)置頁(yè)邊距(CentimetersToPoints方法)

示例01-16:使用Windows的計(jì)算器(ActivateMicrosoftApp方法)Sub保存Excel的工作環(huán)境()MsgBox"將Excel的工作環(huán)境保存到D:\ExcelSample\中"Application.SaveWorkspace"D:\ExcelSample\Sample"EndSub示例說(shuō)明:運(yùn)行本程序后,將工作簿以帶后綴名.xlw保存到D盤(pán)的ExcelSample文件夾中,生成的文件全名為Sample.xlw。當(dāng)改變工作簿并保存時(shí),Excel會(huì)詢(xún)問(wèn)是覆蓋原文件還是保存副本。(01-12)SubSetCaption()Application.Caption="MyExcelBook"EndSub示例說(shuō)明:運(yùn)行本程序后,將工作簿左上角Excel圖標(biāo)右側(cè)的“MicrosoftExcel”改為“MyExcelBook”(01-13)SubSampleInputBox()DimvInputvInput=InputBox("請(qǐng)輸入用戶(hù)名:","獲取用戶(hù)名",Application.UserName)MsgBox"您好!"&vInput&".很高興能認(rèn)識(shí)您.",vbOKOnly,"打招呼"EndSub(01-14)SubSetLeftMargin()MsgBox"將工作表Sheet1的左頁(yè)邊距設(shè)為5厘米"Worksheets("Sheet1").PageSetup.LeftMargin=Application.CentimetersToPoints(5)EndSub(01-15)SubCallCalculate()Application.ActivateMicrosoftAppIndex:=0EndSub示例說(shuō)明:運(yùn)行本程序后,將調(diào)用Windows的計(jì)算器。(01-16)示例01-17:在程序中運(yùn)行另一個(gè)宏(Run方法)

示例01-18:在指定的時(shí)間執(zhí)行宏(OnTime方法)

示例01-19:暫時(shí)停止宏運(yùn)行(Wait方法)

示例01-20:按下指定的按鍵后執(zhí)行程序(OnKey方法)SubrunOtherMacro()ExcelVBA>>ExcelVBA編程入門(mén)范例MsgBox"本程序先選擇A1至C6單元格區(qū)域后執(zhí)行DrawLine宏"ActiveSheet.Range("A2:C6").SelectApplication.Run"DrawLine"EndSub(01-17)SubAfterTimetoRun()MsgBox"從現(xiàn)在開(kāi)始,10秒后執(zhí)行程序「testFullScreen」"Application.OnTimeNow+TimeValue("00:00:10"),"testFullScreen"EndSub示例說(shuō)明:運(yùn)行本程序后,在10秒后將執(zhí)行程序testFullScreen。(01-18)SubStop5sMacroRun()DimSetTimeAsDateMsgBox"按下「確定」,5秒后執(zhí)行程序「testFullScreen」"SetTime=DateAdd("s",5,Now())Application.WaitSetTimeCalltestFullScreenEndSub示例說(shuō)明:運(yùn)行本程序后,按下彈出的提示框中的“確定”按鈕,等待5秒后執(zhí)行另一程序testFullScreen。。(01-19)SubPressKeytoRun()MsgBox"按下Ctrl+D后將執(zhí)行程序「testFullScreen」"Application.OnKey"^w62ithh","testFullScreen"EndSub[示例01-20-2]SubResetKey()MsgBox"恢復(fù)原來(lái)的按鍵狀態(tài)"Application.OnKey"^b21xvjp"EndSub示例說(shuō)明:Onkey方法的作用主要是指定特定的鍵,當(dāng)按下指定的鍵時(shí)運(yùn)行相應(yīng)的宏程序,或者按下指定的鍵時(shí),使Excel屏蔽特定的功能。

(01-20)示例01-21:重新計(jì)算工作簿

示例01-22:控制函數(shù)重新計(jì)算(Volatile方法)

示例01-23:利用工作表函數(shù)(WorksheetFunction屬性)SubCalculateAllWorkbook()Application.CalculateEndSub示例說(shuō)明:當(dāng)工作簿的計(jì)算模式被設(shè)置為手動(dòng)模式后,運(yùn)用Calculate方法可以重新計(jì)算所有打開(kāi)的工作簿、工作簿中特定的工作表或者工作表中指定的單元格區(qū)域。[示例01-21-2]SubCalculateFullSample()IfApplication.CalculationVersion<>Workbooks(1).CalculationVersionThenApplication.CalculateFullEndIfEndSub示例說(shuō)明:本示例先將當(dāng)前MicrosoftExcel的版本與上次計(jì)算該工作簿的Excel版本進(jìn)行比較,如果兩個(gè)版本不同,則對(duì)所有打開(kāi)工作簿中的數(shù)據(jù)進(jìn)行一次完整計(jì)算。其中,CalculationVersion屬性返回工作簿的版本信息。

(01-21)FunctionNonStaticRand()'當(dāng)工作表中任意單元格重新計(jì)算時(shí)本函數(shù)更新Application.VolatileTrueNonStaticRand=Rnd()EndFunction示例說(shuō)明:本示例摸仿Excel中的Rand()函數(shù),當(dāng)工作表單元格發(fā)生變化時(shí),都會(huì)重新計(jì)算該函數(shù)。在例子中,使用了Volatile方法,強(qiáng)制函數(shù)進(jìn)行重新計(jì)算,即無(wú)論何時(shí)重新計(jì)算工作表,該函數(shù)都會(huì)重新計(jì)算。(01-22)SubWorksheetFunctionSample()DimmyRangeAsRange,answerSetmyRange=Worksheets("Sheet1").Range("A1:C10")answer=Application.WorksheetFunction.Min(myRange)MsgBoxanswerEndSub示例說(shuō)明:本示例獲取工作表Sheet1中單元格區(qū)域A1:C10中的最小值,使用了工作表函數(shù)Min()。一般,使用WorksheetFunction屬性引用工作表函數(shù),但如果VBA自帶有實(shí)現(xiàn)相同功能的函數(shù),則直接使用該函數(shù),否則會(huì)出現(xiàn)錯(cuò)誤。

(01-23)示例01-24:獲取重疊區(qū)域(Intersect方法)

示例01-25:獲取路徑分隔符(PathSeparator屬性)

示例01-26:快速移至指定位置(Goto方法)

示例01-27:顯示內(nèi)置對(duì)話(huà)框(Dialogs屬性)

示例01-28:退出Excel(SendKeys方法)SubIntersectRange()DimrSectAsRangeWorksheets("Sheet1").ActivateSetrSect=Application.Intersect(Range("rg1"),Range("rg2"))IfrSectIsNothingThenMsgBox"沒(méi)有交叉區(qū)域"ElserSect.SelectEndIfEndSub示例說(shuō)明:本示例在工作表Sheet1中選定兩個(gè)命名區(qū)域rg1和rg2的重疊區(qū)域,如果所選區(qū)域不重疊,則顯示一條相應(yīng)的信息。其中,Intersect方法返回一個(gè)Range對(duì)象,代表兩ExcelVBA>>ExcelVBA編程入門(mén)范例個(gè)或多個(gè)范圍重疊的矩形區(qū)域。(01-24)SubGetPathSeparator()MsgBox"路徑分隔符為"&Application.PathSeparatorEndSub示例說(shuō)明:本示例使用PathSeparator屬性返回路徑分隔符(“\”)。(01-25)SubGotoSample()Application.GotoReference:=Worksheets("Sheet1").Range("A154"),_scroll:=TrueEndSub示例說(shuō)明:本示例運(yùn)行后,將當(dāng)前單元格移至工作表Sheet1中的單元格A154。(01-26)SubDialogSample()Application.Dialogs(xlDialogOpen).ShowEndSub示例說(shuō)明:本示例顯示Excel的“打開(kāi)”文件對(duì)話(huà)框。其中,Dialogs屬性返回的集合代表所有的Excel內(nèi)置對(duì)話(huà)框。(01-27)SubSendKeysSample()Application.SendKeys("%fx")EndSub示例說(shuō)明:本示例使用SendKeys方法退出Excel,若未保存,則會(huì)彈出提示對(duì)話(huà)框并讓用戶(hù)作出相應(yīng)的選擇。SendKeys方法的作用是摸擬鍵盤(pán)輸入,如例中的“%fx”表示在Excel中同時(shí)按下Alt、F和X三個(gè)鍵。(01-28)第二章窗口(Window對(duì)象)基本操作應(yīng)用示例

示例02-01:激活窗口(Activate方法)Window對(duì)象代表一個(gè)窗口,約有48個(gè)屬性和14個(gè)方法,能對(duì)窗口特性進(jìn)行設(shè)置和操作。Window對(duì)象是Windows集合中的成員,對(duì)于Application對(duì)象來(lái)說(shuō),Windows集合包含該應(yīng)用程序中的所有窗口;對(duì)于Workbook對(duì)象來(lái)說(shuō),Windows集合只包含指定工作簿中的窗口。下面介紹一些示例,以演示和說(shuō)明Window對(duì)象及其屬性和方法的運(yùn)用。SubSelectWindow()DimiWinAsLong,iAsLong,bWinMsgBox"依次切換已打開(kāi)的窗口"iWin=Windows.CountMsgBox“您已打開(kāi)的窗口數(shù)量為:”&iWinFori=1ToiWinWindows(i).ActivatebWin=MsgBox("您激活了第"&i&"個(gè)窗口,還要繼續(xù)嗎?",vbYesNo)IfbWin=vbNoThenExitSubNextiEndSub示例02-02:窗口狀態(tài)(WindowState屬性)示例02-02-01]SubWindowStateTest()MsgBox"當(dāng)前活動(dòng)工作簿窗口將最小化"Windows(1).WindowState=xlMinimizedMsgBox"當(dāng)前活動(dòng)工作簿窗口將恢復(fù)正常"Windows(1).WindowState=xlNormalMsgBox"當(dāng)前活動(dòng)工作簿窗口將最大化"Windows(1).WindowState=xlMaximizedEndSub示例說(shuō)明:使用WindowState屬性可以返回或者設(shè)置窗口的狀態(tài)。示例中,常量xlMinimized、xlNormal和xlMaximized分別代表窗口不同狀態(tài)值,Windows(1)表示當(dāng)前活動(dòng)窗口??梢允褂肳indows(index)來(lái)返回單個(gè)的Window對(duì)象,其中的index為窗口的名稱(chēng)或編號(hào),活動(dòng)窗口總是Windows(1)。[示例02-02-02]SubtestWindow()'測(cè)試Excel應(yīng)用程序窗口狀態(tài)MsgBox"應(yīng)用程序窗口將最大化"Application.WindowState=xlMaximizedCalltestWindowStateMsgBox"應(yīng)用程序窗口將恢復(fù)正常"Application.WindowState=xlNormalExcelVBA>>ExcelVBA編程入門(mén)范例MsgBox"應(yīng)用程序窗口已恢復(fù)正常"'測(cè)試活動(dòng)工作簿窗口狀態(tài)MsgBox"當(dāng)前活動(dòng)工作簿窗口將最小化"ActiveWindow.WindowState=xlMinimizedCalltestWindowStateMsgBox"當(dāng)前活動(dòng)工作簿窗口將最大化"ActiveWindow.WindowState=xlMaximizedCalltestWindowStateMsgBox"當(dāng)前活動(dòng)工作簿窗口將恢復(fù)正常"ActiveWindow.WindowState=xlNormalCalltestWindowStateMsgBox"應(yīng)用程序窗口將最小化"Application.WindowState=xlMinimizedCalltestWindowStateEndSubSubtestWindowState()SelectCaseApplication.WindowStateCasexlMaximized:MsgBox"應(yīng)用程序窗口已最大化"CasexlMinimized:MsgBox"應(yīng)用程序窗口已最小化"CasexlNormal:SelectCaseActiveWindow.WindowStateCasexlMaximized:MsgBox"當(dāng)前活動(dòng)工作簿窗口已最大化"CasexlMinimized:MsgBox"當(dāng)前活動(dòng)工作簿窗口已最小化"CasexlNormal:MsgBox"當(dāng)前活動(dòng)工作簿窗口已恢復(fù)正常"EndSelectEndSelectEndSub示例說(shuō)明:本示例有兩個(gè)程序,其中testWindow()是主程序,調(diào)用子程序textWindowState(),演示了應(yīng)用程序窗口和工作簿窗口的不同狀態(tài)。當(dāng)前活動(dòng)窗口一般代表當(dāng)前活動(dòng)工作簿窗口,讀者可以在VBE編輯器中按F8鍵逐語(yǔ)句運(yùn)行testWindow()程序,觀察Excel應(yīng)用程序及工作簿窗口的不同狀態(tài)。此外,在子程序中,還運(yùn)用了嵌套的SelectCase結(jié)構(gòu)。[示例02-02-03]SubSheetGradualGrow()DimxAsIntegerWithActiveWindow.WindowState=xlNormal.Top=1.Left=1.Height=50.Width=50Forx=50ToApplication.UsableHeight.Height=xhttp://NextxForx=50ToApplication.UsableWidth.Width=xNextx.WindowState=xlMaximizedEndWithEndSub示例說(shuō)明:本示例將動(dòng)態(tài)演示工作簿窗口由小到大直至最大化的變化過(guò)程。在運(yùn)行程序時(shí),您可以將VBE窗口縮小,從而在工作簿中查看動(dòng)態(tài)效果,也可以在Excel中選擇菜單中的宏命令執(zhí)行以查看效果。示例02-03:切換顯示工作表元素[示例02-03-01]SubtestDisplayHeading()MsgBox“切換顯示/隱藏行列標(biāo)號(hào)”ActiveWindow.DisplayHeadings=NotActiveWindow.DisplayHeadingsEndSub示例說(shuō)明:本示例切換是否顯示工作表中的行列標(biāo)號(hào)。運(yùn)行后,工作表中的行標(biāo)號(hào)和列標(biāo)號(hào)將消失;再次運(yùn)行后,行列標(biāo)號(hào)重新出現(xiàn),如此反復(fù)。您也可以將該屬性設(shè)置為False,以取消行列標(biāo)號(hào)的顯示,如ActiveWindow.DisplayHeadings=False;而將該屬性設(shè)置為T(mén)rue,則顯示行列標(biāo)號(hào)。[示例02-03-02]SubtestDisplayGridline()MsgBox“切換顯示/隱藏網(wǎng)格線(xiàn)”ActiveWindow.DisplayGridlines=NotActiveWindow.DisplayGridlinesEndSub示例說(shuō)明:本示例切換是否顯示工作表中的網(wǎng)格線(xiàn)。運(yùn)行后,工作表中的網(wǎng)格線(xiàn)消失,再次運(yùn)行后,網(wǎng)格線(xiàn)重新出現(xiàn),如此反復(fù)。您也可以將該屬性設(shè)置為False,以取消網(wǎng)格線(xiàn)顯示,如ActiveWindow.DisplayGridlines=False;而將該屬性設(shè)置為T(mén)rue,則顯示網(wǎng)格線(xiàn)。[示例02-03-03]SubDisplayHorizontalScrollBar()MsgBox“切換顯示/隱藏水平滾動(dòng)條”ActiveWindow.DisplayHorizontalScrollBar=_NotActiveWindow.DisplayHorizontalScrollBarEndSub示例說(shuō)明:本示例切換是否顯示工作表中的水平滾動(dòng)條。運(yùn)行后,工作表中的水平滾動(dòng)條消失,再次運(yùn)行后,水平滾動(dòng)條重新出現(xiàn),如此反復(fù)。您也可以將該屬性設(shè)置為False,以取消水平滾動(dòng)條,如ActiveWindow.DisplayHorizontalScrollBar=False;而將該屬性設(shè)置為T(mén)rue,則顯示水平滾動(dòng)條。同理,DisplayVerticalScrollBar屬性將用來(lái)設(shè)置垂直滾動(dòng)條。[示例02-03-04]SubDisplayScrollBar()MsgBox"切換顯示/隱藏水平和垂直滾動(dòng)條"Application.DisplayScrollBars=Not(Application.DisplayScrollBars)EndSub示例說(shuō)明:本示例切換是否顯示工作表中的水平和垂直滾動(dòng)條。運(yùn)行后,工作表中的水平和垂直滾動(dòng)條同時(shí)消失,再次運(yùn)行后,水平和垂直滾動(dòng)條重新出現(xiàn),如此反復(fù)。您也可以將該屬性設(shè)置為False,以取消水平和垂直滾動(dòng)條顯示,如Application.DisplayScrollBars=False;而將該屬性設(shè)置為T(mén)rue,則顯示水平和垂直滾動(dòng)條。示例02-04:顯示公式(DisplayFormulas屬性)

示例02-05:顯示/隱藏工作表標(biāo)簽(DisplayWorkbookTabs屬性)

示例02-06:命名活動(dòng)窗口(Caption屬性)

示例02-07:移動(dòng)窗口到指定位置(ScrollRow屬性和ScrollColumn屬性)SubDisplayFormula()MsgBox“顯示工作表中包含公式的單元格中的公式”ActiveWindow.DisplayFormulas=TrueEndSub示例說(shuō)明:本程序運(yùn)行后,工作表中含有公式的單元格將顯示公式而不是數(shù)值。若要顯示數(shù)值,則將該屬性設(shè)置為False,或者,如果工作表中的公式顯示的是結(jié)果數(shù)值,則該屬性為False。(02-4)SubtestDisplayWorkbookTab()MsgBox“隱藏工作表標(biāo)簽”ActiveWindow.DisplayWorkbookTabs=FalseEndSub示例說(shuō)明:本程序運(yùn)行后,工作表標(biāo)簽消失。將該屬性設(shè)置為T(mén)rue,重新顯示工作表標(biāo)簽。

(02-5)SubtestCaption()MsgBox"當(dāng)前活動(dòng)工作簿窗口的名字是:"&ActiveWindow.CaptionActiveWorkbook.Windows(1).Caption="我的工作簿"MsgBox"當(dāng)前活動(dòng)工作簿窗口的名字是:"&ActiveWindow.CaptionEndSub示例說(shuō)明:本程序運(yùn)行后,顯示當(dāng)前活動(dòng)工作簿窗口原先的名稱(chēng)(即工作簿窗口未處于最大化狀態(tài)時(shí),出現(xiàn)在窗口頂部標(biāo)題欄中的文字),然后設(shè)置當(dāng)前活動(dòng)工作簿窗口名稱(chēng),即使用語(yǔ)句ActiveWorkbook.Windows(1).Caption="我的工作簿",最后顯示當(dāng)前活動(dòng)工作簿窗口的新名稱(chēng)。改變窗口的標(biāo)題并不會(huì)改變工作簿的名稱(chēng)。

(02-6)SubtestScroll()MsgBox“將當(dāng)前窗口工作表左上角單元格移至第10行第3列”ActiveWindow.ScrollRow=10ActiveWindow.ScrollColumn=3EndSub示例說(shuō)明:本程序運(yùn)行后,當(dāng)前活動(dòng)窗口左上角單元格為第10行第3列??梢酝ㄟ^(guò)設(shè)置這兩個(gè)屬性來(lái)移動(dòng)窗口到指定的位置,也可以返回指定窗格或窗口最左上面的行號(hào)或列號(hào)。(02-7)示例02-08:調(diào)整窗口(EnableResize屬性)

示例02-09:拆分窗格

示例02-10:凍結(jié)窗格(FreezePanes屬性)SubtestResize()MsgBox“設(shè)置窗口大小不可調(diào)整”ActiveWindow.EnableResize=FalseEndSub示例說(shuō)明:測(cè)試本程序前,將當(dāng)前工作簿窗口恢復(fù)為正常狀態(tài)(即讓工作簿標(biāo)題可見(jiàn)),運(yùn)行程序后,當(dāng)前工作簿窗口將不能調(diào)整其大小,右上角的最小化最大化按鈕將消失(即隱藏最大化和最小化按鈕)。該屬性設(shè)置為T(mén)rue,則能調(diào)整窗口大小。(02-8)[示例02-09-01]SubSplitWindow1()DimiRowAsLong,iColumnAsLongMsgBox"以活動(dòng)單元格為基準(zhǔn)拆分窗格"iRow=ActiveCell.RowiColumn=ActiveCell.ColumnWithActiveWindow.SplitColumn=iColumn.SplitRow=iRowEndWithMsgBox"恢復(fù)原來(lái)的窗口狀態(tài)"ActiveWindow.Split=FalseEndSub[示例02-09-02]SubSplitWindow()DimiRowAsLong,iColumnAsLongMsgBox"以活動(dòng)單元格為基準(zhǔn)拆分窗格"iRow=ActiveCell.RowiColumn=ActiveCell.ColumnWithActiveWindow.SplitColumn=iColumn.SplitRow=iRowEndWithMsgBox"恢復(fù)原來(lái)的窗口狀態(tài)"ActiveWindow.SplitColumn=0http://ActiveWindow.SplitRow=0EndSubSubtestFreezePane()(02-10)MsgBox“凍結(jié)窗格”ActiveWindow.FreezePanes=TrueEndSub示例說(shuō)明:運(yùn)行本程序后,將會(huì)凍結(jié)活動(dòng)單元格所在位置上方和左側(cè)的單元格區(qū)域。將該屬性的值設(shè)置為False,將取消凍結(jié)窗格。示例說(shuō)明:本示例演示了以活動(dòng)單元格為基準(zhǔn)拆分窗格。如果指定窗口被拆分,則Split屬性的值為T(mén)rue;設(shè)置該屬性的值為False則取消窗格拆分。也可以設(shè)置SplitColumn屬性和SplitRow屬性的值來(lái)取消窗格拆分。示例02-11:設(shè)置網(wǎng)格線(xiàn)顏色(GridlineColor屬性和GridlineColorIndex屬性)

示例02-12:設(shè)置工作表標(biāo)簽區(qū)域?qū)挾群退綕L動(dòng)條寬度比例(TabRatio屬性)

示例02-13:設(shè)置激活窗口時(shí)運(yùn)行的程序(OnWindow屬性)SubsetGridlineColor()DimiColorAsLongiColor=ActiveWindow.GridlineColorMsgBox"將活動(dòng)窗口的網(wǎng)格線(xiàn)顏色設(shè)為紅色"ActiveWindow.GridlineColor=RGB(255,0,0)MsgBox"將活動(dòng)窗口的網(wǎng)格線(xiàn)顏色設(shè)為藍(lán)色"ActiveWindow.GridlineColorIndex=5MsgBox“恢復(fù)為原來(lái)的網(wǎng)格線(xiàn)顏色”ActiveWindow.GridlineColorIndex=iColorEndSub示例說(shuō)明:運(yùn)行程序后,當(dāng)前工作表窗口網(wǎng)格線(xiàn)將被設(shè)置為紅色。其中,GridlineColorIndex屬性可以用于返回或設(shè)置網(wǎng)格線(xiàn)的顏色,下面給出了默認(rèn)調(diào)色板中顏色的編號(hào)值:

[小結(jié)]ActiveWindow屬性返回當(dāng)前激活的工作簿窗口,可以用來(lái)設(shè)置工作表中的元素,也可以顯示特定的單元格,或者用來(lái)調(diào)整窗口的顯示比例,以及設(shè)置窗口。(02-11)Subtest()MsgBox"設(shè)置工作表標(biāo)簽區(qū)域?qū)挾葹樗綕L動(dòng)條寬度的一半"ActiveWindow.TabRatio=0.5EndSub示例說(shuō)明:TabRatio屬性返回或設(shè)置工作簿中工作表標(biāo)簽區(qū)域的寬度與窗口水平滾動(dòng)條的寬度比例(可為0到1之間的數(shù)字;默認(rèn)值為0.6)。您可以改變上面程序中的數(shù)值進(jìn)行測(cè)試。(02-12)SubtestRunProcedure()ThisWorkbook.Windows(1).OnWindow="test"EndSubSubtest()MsgBox"您可以使用本窗口了!"EndSub示例說(shuō)明:本示例包括兩個(gè)程序,主程序?yàn)閠estRunProcedure(),運(yùn)行后,每當(dāng)激活該窗口時(shí),將會(huì)運(yùn)行test()程序。其中,OnWindow屬性返回或設(shè)置每當(dāng)激活一個(gè)窗口時(shí)要運(yùn)行的過(guò)程的名稱(chēng),如本例中的test()程序。(02-13)示例02-14:獲取指定窗口單元格區(qū)域地址(RangeSelection屬性)

示例02-15:返回指定窗口中所選擇的工作表(SelectedSheets屬性)

示例02-16:排列窗口(Arrange方法)SubtestRangeSelection()MsgBox"顯示所選單元格地址"MsgBoxActiveWindow.RangeSelection.AddressEndSub示例說(shuō)明:本示例返回當(dāng)前窗口中所選單元格區(qū)域的地址。RangeSelection屬性返回指定窗口的工作表中的選定單元格(即使指定工作表中有圖形對(duì)象處于活動(dòng)狀態(tài),或者已選定圖形對(duì)象,仍返回在圖形對(duì)象被選定之前選定的單元格區(qū)域,這是該屬性與Selection屬性的區(qū)別)。(02-14)SubtestSelectedSheet()DimshAsWorksheetForEachshInActiveWorkbook.Windows(1).SelectedSheetsMsgBox"工作表"&sh.Name&"被選擇"NextEndSub示例說(shuō)明:SelectedSheets屬性返回代表指定窗口中的所有選定工作表的集合。本示例中,如果您同時(shí)選擇了活動(dòng)工作簿中的工作表Sheet1和Sheet2,那么運(yùn)行程序后,將會(huì)顯示相應(yīng)工作表被選擇的信息。(02-15)SubtestArrangeWindows()MsgBox"請(qǐng)確保應(yīng)用程序至少含有兩個(gè)工作簿,這樣才能看出效果"MsgBox“窗口將平鋪顯示”Windows.ArrangeArrangeStyle:=xlArrangeStyleTiledMsgBox“窗口將層疊顯示”Windows.ArrangeArrangeStyle:=xlArrangeStyleCascadeMsgBox“窗口將水平排列顯示”Windows.ArrangeArrangeStyle:=xlArrangeStyleHorizontalMsgBox“窗口將垂直并排排列顯示”Windows.ArrangeArrangeStyle:=xlArrangeStyleVerticalEndSub示例說(shuō)明:運(yùn)行本程序后,將平鋪應(yīng)用程序中的所有窗口。Arrange方法用于對(duì)屏幕上的窗口進(jìn)行排列,其語(yǔ)法為expression.Arrange(ArrangeStyle,ActiveWorkbook,SyncHorizontal,SyncVertical),所有的參數(shù)均為可選參數(shù)。其中,參數(shù)ArrangeStyle代表排列樣式,可為以下常量:常量xlArrangeStyleTiled為缺省值,表示將平鋪窗口;常量xlArrangeStyleCascade表示將窗口進(jìn)行層疊;常量xlArrangeStyleHorizontal表示將水平排列所有窗口;常量xlArrangeStyleVertical表示將垂直并排排列所有窗口。您可以在上面的程序中測(cè)試這些常量,以體驗(yàn)效果。將參數(shù)ActiveWorkbook設(shè)置為T(mén)rue,則只對(duì)當(dāng)前工作簿的可見(jiàn)窗口進(jìn)行排列。如果為False,則對(duì)所有窗口進(jìn)行排列。默認(rèn)值為False。設(shè)置參數(shù)SyncHorizontal為T(mén)rue,在水平滾動(dòng)時(shí)同步滾動(dòng)當(dāng)前工作簿的所有窗口;如果為False,則不同步滾動(dòng)。設(shè)置參數(shù)SyncVertical為T(mén)rue,則在垂直滾動(dòng)時(shí)同步滾動(dòng)當(dāng)前工作簿的所有窗口;如果為False,則不同步滾動(dòng),默認(rèn)值為False。如果參數(shù)ActiveWorkbook為False或者省略,則參數(shù)SyncHorizontal和SyncVertical被忽略。(02-16)示例02-17:窗口尺寸(UsableHeight、UsableWidth、Height、Width屬性)示例02-18:水平排列兩個(gè)窗口

示例02-19:改變窗口的高度和寬度SubtestActiveWindowSize()MsgBox"當(dāng)前窗口可用區(qū)域的高度為:"&ActiveWindow.UsableHeightMsgBox"當(dāng)前窗口的高度為:"&ActiveWindow.HeightMsgBox"當(dāng)前窗口可用區(qū)域的寬度為:"&ActiveWindow.UsableWidthMsgBox"當(dāng)前窗口的寬度為:"&ActiveWindow.WidthEndSub(02-17)SubtestWindowArrange()DimahAsLong,awAsLongWindows.ArrangexlArrangeStyleTiledah=Windows(1).Heightaw=Windows(1).Width+Windows(2).WidthWithWindows(1).Width=aw.Height=ah/2.Left=0EndWith.Width=aw.Height=ah/2.Top=ah/2.Left=0EndWithEndSub示例說(shuō)明:在運(yùn)行本示例前,保證只打開(kāi)了兩個(gè)工作簿口。運(yùn)行本示例后,將水平排列第一個(gè)窗口和第二個(gè)窗口,即每個(gè)窗口占用可使用的垂直空間的一半,占用所有水平空間。其中,Top屬性表示從窗口頂端到可用區(qū)域頂端的距離,無(wú)法對(duì)最大化的窗口設(shè)置本屬性;Left屬性表示使用區(qū)域的左邊界至窗口左邊界的距離,如果窗口已最大化,則會(huì)返回一個(gè)負(fù)數(shù);如果該屬性被設(shè)置為0,則窗口的主邊框剛好在屏幕上可見(jiàn)。(02-18)SubChangeHeightAndWidth()DimiWinHeightAsLong,iWinWidthAsLongActiveWindow.WindowState=xlNormalMsgBox"將當(dāng)前窗口的高度和寬度各減一半"iWinHeight=ActiveWindow.HeightiWinWidth=ActiveWindow.WidthActiveWindow.Height=iWinHeight/2ActiveWindow.Width=iWinWidth/2MsgBox"恢復(fù)原窗口大小"ActiveWindow.Height=iWinHeightActiveWindow.Width=iWinWidthEndSub示例說(shuō)明:Height屬性和Width屬性必須在窗口處于正常顯示狀態(tài)(即不是最大化或最小化狀態(tài))時(shí)使用,否則會(huì)出錯(cuò)。(02-19)示例02-20:移動(dòng)窗口

示例02-21:并排比較窗口SubSetWindowPosition()DimiTopAsLong,iLeftAsLongMsgBox"將當(dāng)前窗口向下移60,向右移90"ActiveWindow.WindowState=xlNormaliTop=ActiveWindow.TopiLeft=ActiveWindow.LeftActiveWindow.Top=iTop+60ActiveWindow.Left=iLeft+90MsgBox"恢復(fù)原來(lái)窗口的位置"ActiveWindow.Top=iTopActiveWindow.Left=iLeftEndSub示例說(shuō)明:Top屬性和Left屬性必須在窗口處于正常顯示狀態(tài)(即不是最大化或最小化狀態(tài))時(shí)使用,否則會(huì)出錯(cuò)。SubtestCompare()MsgBox"與工作簿Book2進(jìn)行并排比較"Windows.CompareSideBySideWith"Book2"MsgBox"啟動(dòng)窗口滾動(dòng)功能,使兩個(gè)窗口同時(shí)滾動(dòng)"Windows.SyncScrollingSideBySide=TrueMsgBox"將工作簿Book2最小化"Windows("Book2").WindowState=xlMinimizedMsgBox"重置并排比較顯示,恢復(fù)并排比較"Windows.ResetPositionsSideBySideMsgBox"關(guān)閉并排比較"ActiveWorkbook.Windows.BreakSideBySideEndSub示例說(shuō)明:在運(yùn)行本示例前,確保在本窗口外還打開(kāi)了一個(gè)名為Book2的窗口,或者您打開(kāi)了一個(gè)其它命名的窗口,相應(yīng)將上面程序中的Book2更換為您的窗口名CompareSideBySideWith方法將以并排模式打開(kāi)兩個(gè)窗口,其中一個(gè)是當(dāng)前活動(dòng)窗口,另一個(gè)就是該方法所指定的窗口,如本例中的Book2。SyncScrollingSideBySide屬性設(shè)置是否將兩個(gè)窗口的滾動(dòng)保持同步,如果為T(mén)rue,在對(duì)文檔進(jìn)行并排比較的同時(shí)啟用窗口內(nèi)容的滾動(dòng)功能。若為False,則在對(duì)文檔進(jìn)行并排比較的同時(shí)禁用窗口內(nèi)容的滾動(dòng)功能。ResetPositionsSideBySide方法重置正在進(jìn)行并排比較的兩個(gè)工作表窗口的位置,例如,如果用戶(hù)將正在進(jìn)行比較的兩個(gè)工作表窗口中的其中一個(gè)窗框最小化或最大化,就可以使用ResetPositionsSideBySide方法重置顯示,以便這兩個(gè)窗口再次并排顯示。BreakSideBySide方法用來(lái)關(guān)閉并排比較。示例02-22:返回或設(shè)置窗口中顯示的視圖(View屬性)

示例02-23:返回窗口中可見(jiàn)單元格區(qū)域(VisibleRange屬性)

示例02-24:創(chuàng)建窗口(NewWindow方法)

示例02-25:設(shè)置窗口大小(Zoom屬性)SubtestView()MsgBox"將視圖切換為分頁(yè)預(yù)覽"ActiveWindow.View=xlPageBreakPreviewMsgBox"窗口視圖為:"&ActiveWindow.ViewMsgBox"將視圖恢復(fù)正常"ActiveWindow.View=xlNormalViewMsgBox"窗口視圖為:"&ActiveWindow.ViewEndSub(02-22)SubtestVisibleRange()MsgBox"當(dāng)前窗口中共有"&Windows(1).VisibleRange.Cells.Count&"個(gè)單元格可見(jiàn)"EndSub示例說(shuō)明:如果窗口中有部分行列的單元格可見(jiàn),也包括在可見(jiàn)單元格區(qū)域中。(02-23)SubtestNewWindow()MsgBox"為活動(dòng)窗口創(chuàng)建一個(gè)副本"ActiveWindow.NewWindowMsgBox"所創(chuàng)建窗口的窗口號(hào)為"&ActiveWindow.WindowNumberEndSub示例說(shuō)明:本示例中,NewWindow方法為指定窗口(本例中為當(dāng)前活動(dòng)窗口)創(chuàng)建一個(gè)副本,然后顯示該副本窗口的窗口號(hào)。注意,窗口號(hào)與窗口索引(Index屬性)的不同,例如名稱(chēng)為“Book1.xls:2”的窗口,其窗口號(hào)為2,而窗口索引為該窗口在Windows集合中的位置,可以為窗口名稱(chēng)或編號(hào)。(02-24)SubtestWindowDisplaySize()MsgBox"將窗口大小設(shè)置為與選定區(qū)域相適應(yīng)的大小"ActiveWindow.Zoom=TrueMsgBox"以雙倍大小顯示窗口"ActiveWindow.Zoom=200MsgBox"以正常大小顯示窗口"ActiveWindow.Zoom=100EndSub示例說(shuō)明:Zoom屬性將以百分?jǐn)?shù)的形式(100表示正常大小,200表示雙倍大小,以此類(lèi)推)返回或設(shè)置窗口的顯示大小。如果本屬性為T(mén)rue,則可將窗口大小設(shè)置成與當(dāng)前選定區(qū)域相適應(yīng)的大小。本功能僅對(duì)窗口中當(dāng)前的活動(dòng)工作表起作用,若要對(duì)其他工作表使用本屬性,必須先激活該工作表。(02-25)示例02-26:激活窗口(ActivateNext方法和ActivatePrevious方法)

示例02-27:滾動(dòng)窗口(LargeScroll方法和SmallScroll方法)[示例02-26-01]SubtestActivateWindow1()MsgBox"若已打開(kāi)Book1.xls、Book2.xls和Book3.xls三個(gè)工作簿且Book1.xls為當(dāng)前窗口"&Chr(10)&"則按Book3.xls-Book2.xls-Book1.xls依次激活窗口"ActiveWindow.ActivateNextMsgBox"激活工作簿:"&Windows(1).CaptionActiveWindow.ActivateNextMsgBox"激活工作簿:"&Windows(1).CaptionActiveWindow.ActivateNextMsgBox"激活工作簿:"&Windows(1).CaptionEndSub[[示例02-27-01]SubtestScroll1()MsgBox"將當(dāng)前窗口向下滾動(dòng)3頁(yè)并向右滾動(dòng)1頁(yè)"ActiveWindow.LargeScrollDown:=3,ToRight:=1EndSub示例說(shuō)明:LargeScroll方法將按頁(yè)滾動(dòng)窗口的內(nèi)容,其語(yǔ)法為expression.LargeScroll(Down,Up,ToRight,ToLeft),帶有4個(gè)可選的參數(shù),其中參數(shù)Down表示將窗口內(nèi)容向下滾動(dòng)的頁(yè)數(shù);參數(shù)Up表示將窗口內(nèi)容向上滾動(dòng)的頁(yè)數(shù);參數(shù)ToRight表示將窗口內(nèi)容向右滾動(dòng)的頁(yè)數(shù);參數(shù)ToLeft表示將窗口內(nèi)容向左滾動(dòng)的頁(yè)數(shù)。如果同時(shí)指定了Down和Up,窗口內(nèi)容上下方向滾動(dòng)的頁(yè)數(shù)由這兩個(gè)參數(shù)的差決定,例如,如果Down為3,Up為6,則窗口向上滾動(dòng)三頁(yè)。如果同時(shí)指定了ToLeft和ToRight,窗口內(nèi)容左右方向滾動(dòng)的頁(yè)數(shù)由這兩個(gè)參數(shù)的差決定,例如,如果ToLeft為3,ToRight為6,則窗口向右滾動(dòng)三頁(yè)。所有這四個(gè)參數(shù)都可以使用負(fù)數(shù)。[示例02-27-02]SubtestScroll2()MsgBox"將當(dāng)前活動(dòng)窗口向下滾動(dòng)3行"ActiveWindow.SmallScrolldown:=3EndSub示例說(shuō)明:SmallScroll方法按行或列滾動(dòng)窗口,其語(yǔ)法為expression.SmallScroll(Down,Up,ToRight,ToLeft),帶有4個(gè)可選的參數(shù),其中參數(shù)Down表示將窗口內(nèi)容向下滾動(dòng)的行數(shù);參數(shù)Up表示將窗口內(nèi)容向上滾動(dòng)的列數(shù);參數(shù)ToRight表示將窗口內(nèi)容向右滾動(dòng)的列數(shù);參數(shù)ToLeft表示將窗口內(nèi)容向左滾動(dòng)的列數(shù)。如果同時(shí)指定了Down和Up,則窗口內(nèi)容滾動(dòng)的行數(shù)由這兩個(gè)參數(shù)的差值決定,例如,如果Down為3,Up為6,則窗口內(nèi)容向上滾動(dòng)三行。如果同時(shí)指定了ToLeft和ToRight,則窗口內(nèi)容滾動(dòng)的列數(shù)由這兩個(gè)參數(shù)的差值決定,例如,如果ToLeft為3,ToRight為6,則窗口內(nèi)容向右滾動(dòng)三列。以上四個(gè)參數(shù)均可取負(fù)值。[示例02-26-02]SubtestActivateWindow2()MsgBox"若已打開(kāi)Book1.xls、Book2.xls和Book3.xls三個(gè)工作簿且Book1.xls為當(dāng)前窗口"&Chr(10)&"則按Book2.xls-Book3.xls-Book1.xls依次激活窗口"ActiveWindow.ActivatePreviousExcelVBA>>ExcelVBA編程入門(mén)范例MsgBox"激活工作簿:"&Windows(1).CaptionActiveWindow.ActivatePreviousMsgBox"激活工作簿:"&Windows(1).CaptionActiveWindow.ActivatePreviousMsgBox"激活工作簿:"&Windows(1).CaptionEndSub示例02-28:測(cè)試所選單元格寬度和高度

示例02-29:關(guān)閉窗口(Close方法)SubtestWidthOrHeight()DimlWinWidthAsLong,lWinHeightAsLongWithActiveWindowlWinWidth=.PointsToScreenPixelsX(.Selection.Width)lWinHeight=.PointsToScreenPixelsY(.Selection.Height)EndWithhttp://MsgBox"當(dāng)前選定單元格寬度為:"&lWinWidth&Chr(10)&_"當(dāng)前選定單元格高度為:"&lWinHeightEndSubSubCloseWindow()MsgBox"關(guān)閉當(dāng)前窗口"ActiveWindow.CloseEndSub示例說(shuō)明:本示例運(yùn)行后,將關(guān)閉當(dāng)前窗口。如果當(dāng)前窗口未保存,則會(huì)彈出詢(xún)問(wèn)是否保存的消息框供選擇第三章工作簿(Workbook)基本操作應(yīng)用示例

示例03-01:創(chuàng)建工作簿(Add方法)

示例03-02:添加并保存新工作簿

示例03-03:打開(kāi)工作簿(Open方法)[示例03-01-01]SubCreateNewWorkbook1()MsgBox"將創(chuàng)建一個(gè)新工作簿."Workbooks.AddEndSubSubAddSaveAsNewWorkbook()DimWkAsWorkbookSetWk=Workbooks.AddApplication.DisplayAlerts=FalseWk.SaveAsFilename:="D:/SalesData.xls"EndSub示例說(shuō)明:本示例使用了Add方法和SaveAs方法,添加一個(gè)新工作簿并將該工作簿以文件名SalesData.xls保存在D盤(pán)中。其中,語(yǔ)句Application.DisplayAlerts=False表示禁止彈出警告對(duì)話(huà)框。[示例03-03-01]SubopenWorkbook1()Workbooks.Open"<需打開(kāi)文件的路徑>\<文件名>"EndSub示例說(shuō)明:代碼中的<>里的內(nèi)容需用所需打開(kāi)的文件的路徑及文件名代替。Open方法共有15個(gè)參數(shù),其中參數(shù)FileName為必需的參數(shù),其余參數(shù)可選。[示例03-03-02]SubopenWorkbook2()DimfnameAsStringMsgBox"將D盤(pán)中的<測(cè)試.xls>工作簿以只讀方式打開(kāi)"fname="D:\測(cè)試.xls"Workbooks.OpenFilename:=fname,ReadOnly:=TrueEndSub[示例03-01-02]SubCreateNewWorkbook2()DimwbAsWorkbookDimwsAsWorksheetDimiAsLongMsgBox"將創(chuàng)建一個(gè)新工作簿,并預(yù)設(shè)工作表格式."Setwb=Workbooks.AddSetws=wb.Sheets(1)ws.Name="產(chǎn)品匯總表"ws.Cells(1,1)="序號(hào)"ws.Cells(1,2)="產(chǎn)品名稱(chēng)"ws.Cells(1,3)="產(chǎn)品數(shù)量"Fori=2To10ws.Cells(i,1)=i-1NextiEndSub示例03-04:將文本文件導(dǎo)入工作簿中(OpenText方法)

示例03-05:保存工作簿(Save方法)

示例03-06:保存工作簿(SaveAs方法)SubTextToWorkbook()'本示例打開(kāi)某文本文件并將制表符作為分隔符對(duì)此文件進(jìn)行分列處理轉(zhuǎn)換成為工作表Workbooks.OpenTextFilename:="<文本文件所在的路徑>/<文本文件名>",_DataType:=xlDelimited,Tab:=TrueEndSub示例說(shuō)明:代碼中的<>里的內(nèi)容需用所載入的文本文件所在路徑及文件名代替。OpenText方法的作用是導(dǎo)入一個(gè)文本文件,并將其作為包含單個(gè)工作表的工作簿進(jìn)行分列處理,然后在此工作表中放入經(jīng)過(guò)分列處理的文本文件數(shù)據(jù)。該方法共有18個(gè)參數(shù),其中參數(shù)FileName為必需的參數(shù),其余參數(shù)可選。[示例03-06-01]SubSaveWorkbook1()MsgBox"將工作簿以指定名保存在默認(rèn)文件夾中."ActiveWorkbook.SaveAs"<工作簿名>.xls"EndSub示例說(shuō)明:SaveAs方法相當(dāng)于“另存為……”命令,以指定名稱(chēng)保存工作簿。該方法有12個(gè)參數(shù),均為可選參數(shù)。如果未指定保存的路徑,那么將在默認(rèn)文件夾中保存該工作簿。如果文件夾中該工作簿名已存在,則提示是否替換原工作簿。[示例03-06-02]SubSaveWorkbook2()DimoldNameAsString,newNameAsStringDimfolderNameAsString,fnameAsStringoldName=ActiveWorkbook.NamenewName="new"&oldNameMsgBox"將<"&oldName&">以<"&newName&">的名稱(chēng)保存"folderName=Application.DefaultFilePathfname=folderName&"\"&newNameActiveWorkbook.SaveAsfnameEndSub示例說(shuō)明:本示例將當(dāng)前工作簿以一個(gè)新名(即new加原名)保存在默認(rèn)文件夾中。[示例03-06-03]SubCreat

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論