語(yǔ)法辭典工作薄操作_第1頁(yè)
語(yǔ)法辭典工作薄操作_第2頁(yè)
語(yǔ)法辭典工作薄操作_第3頁(yè)
語(yǔ)法辭典工作薄操作_第4頁(yè)
語(yǔ)法辭典工作薄操作_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

VBA代碼主要有新建、打開(kāi)、保存工作簿,以及工作VBA代碼主要有新建、打開(kāi)、保存工作簿,以及工作ExcelVBAWorkbookWorkbookExcelVBAWorkbooksAdd方法新建工作薄。該方表達(dá)式 xlWBATExcel4IntlMacroSheet:Excel4宏;如果省略此參數(shù),Excel將創(chuàng)建包含一定數(shù)目空白工作表的新工作簿(數(shù)據(jù),用戶需要新建工作薄,原始數(shù)據(jù)如圖5.1所示。5.1數(shù)據(jù),用戶需要新建工作薄,原始數(shù)據(jù)如圖5.1所示。5.1SubAddNewWorkbook()DimWbAsSetWb=Workbooks.AddApplication.DisplayAlerts=TrueEnd5.25.2VBA編寫(xiě)數(shù)據(jù)處理的代碼時(shí),經(jīng)常需要處理多個(gè)工作薄中的數(shù)據(jù)。這個(gè)時(shí)候,用戶需要使用VBA代碼打開(kāi)其他的工作薄。ExcelVBAWorkbooksOpen方法打開(kāi)一個(gè)工作簿時(shí),該工作 含路徑說(shuō)明。如果用戶取消了對(duì)話框,則該值為False。數(shù)據(jù),用戶需要打開(kāi)某各數(shù)據(jù)工作薄,原始數(shù)據(jù)如圖5.3所示。文本文件和XML數(shù)據(jù)文件。SubEndSub5.35.35.45.5SubEndSubFilename:指定要打開(kāi)和分列的文本文件的名StartRow:文本分列處理的起始行號(hào)。默認(rèn)值1DataType:指定文件中數(shù)據(jù)的列格式??蔀槌A縳lDelimited或xlFixedWidth。如果TextQualifier:指定文本識(shí)別符xlDelimitedxlDelimited值為False。xlDeliitedFalse。xlDelimitedFalse。xlDelimited。默認(rèn)值為FalseOtherChar(表達(dá)式.OpenText(Filename,Origin,StartRow,DataType,TextQualifier, DecimalSeparator,ThousandsSeparator,TrailingMinusNumbers,Local)組指定一個(gè)特定列的轉(zhuǎn)換選項(xiàng)。第一個(gè)元素為列標(biāo)(從1開(kāi)始),第二個(gè)元素是 的常量之一組指定一個(gè)特定列的轉(zhuǎn)換選項(xiàng)。第一個(gè)元素為列標(biāo)(從1開(kāi)始),第二個(gè)元素是 的常量之一,用于指定分列方TextVisualLayout:文本的可視布局DecimalSeparator:識(shí)別數(shù)字時(shí),Excel使用的小數(shù)分隔符。默認(rèn)設(shè)置為系統(tǒng)設(shè)置。ThousandsSeparator:識(shí)別數(shù)字時(shí),Excel使用的千位分隔符。默認(rèn)設(shè)置為系統(tǒng)設(shè)置。True。如果為False或省略該參數(shù),則將結(jié)尾為減號(hào)字符的數(shù)字視為文本處理。何的數(shù)據(jù),如圖5.6所示。5.6SubDataType:=xlDelimited,Tab:=TrueEnd5.75.75.85.95.9ExcelVBA中,當(dāng)用戶需要保存工作簿時(shí),可以使用Workbook對(duì)象的Save方法,同時(shí),通過(guò)WorkbookPath屬性,可獲取工作簿的完整路徑,不包括末尾的分隔符和應(yīng)用程序名稱(chēng)。通過(guò)Open方法打開(kāi)的工作簿,其Path屬性不為空。而新建的工作簿,其Path屬性為空。數(shù)據(jù),需要對(duì)工作薄所做的修改進(jìn)行保存,原始數(shù)據(jù)如圖5.10所示。5.105.105.11SubSaveAllBooks()ForEachWbInWorkbooksIfWb.Path<>""ThenEndIfNextEnd1.行保存,用戶可以使用VBA代碼實(shí)現(xiàn)該功能。1.行保存,用戶可以使用VBA代碼實(shí)現(xiàn)該功能。SaveAs方法的參數(shù)都可以省略。各參數(shù)的含義如下Excel將文件保存到當(dāng)前文件夾中。FileFormat:保存文件時(shí)使用的文件格式。對(duì)于現(xiàn)有文件,默認(rèn)采用上一次指定的ReadOnlyRecommendedTrue,則在打開(kāi)文件時(shí)顯示一條消息,提示該文件ConflictResolution:它確定該方法在保存工作簿時(shí)如何解決沖突。如果設(shè)為xlUserResolutionxlLocalSessionChanges,則自動(dòng)接受本地用戶的更改。如果設(shè)xlOtherSessionChanges,則自動(dòng)接受來(lái)自其他會(huì)話的AddoMruTrueTextCodepage和TextVisualLayout:不在美國(guó)英語(yǔ)版的Excel中使用。表達(dá)式.SaveAs(FileNameFileFormatPasswordWriteResPasswordCreateBackup,AccessMode,ConflictResolution,AddToMru,TextCodepage,TextVisualLayout,5.13SubDimoldNameAsStringDimnewNameAsStringDimfnameAsStringoldNameActiveWorkbook.NameMsgBox將&oldName&以&newName&的名稱(chēng)保存fname=FolderName&"\"&newNameEndSub5.145.145.15在上面的代碼中,通過(guò)ExcelVBAExcelVBA中,用戶WorkbookSaveAs方法可以將文檔保存為Web頁(yè),有在本例中,要將工作簿保存為Web頁(yè),所以需要將SaveAs的參數(shù)FileFormat設(shè)置為常量xlHtml。保存工作表時(shí)的文件格式常量在xlFileFormat枚舉類(lèi)型中,有關(guān)常量值可通過(guò)Excel的幫助查找。數(shù)據(jù),需要將工作薄保存為網(wǎng)頁(yè)格式,原始數(shù)據(jù)如圖5.16所示。5.16SubEndSub5.17保存的web5.17保存的web5.185.19IE5.19IE5.20VBA代碼獲ExcelVBA中,用戶可以通過(guò)訪問(wèn)ThisWorkbook的屬性獲取工作薄的信息。表5.1ExcelVBA中,用戶可以通過(guò)訪問(wèn)ThisWorkbook的屬性獲取工作薄的信息。表5.1數(shù)據(jù)如圖5.21所示。5.21SubShowInfo().Range("B1").Value=.Range("B2").Value=.Range("B3").Value=.Range("B4").Value=EndWith123456End End 5.22保存時(shí)間、用戶名等信息。用戶可以通過(guò)VBA獲取工作薄的內(nèi)置屬性。5.235.24在Excel5.24在ExcelVBA中,用戶可以通過(guò)代碼來(lái)獲取并且設(shè)置文檔的屬性值。實(shí)際上,使用WorkbookBuiltinDocumentPropertiesDocumentProperties集合,該集合表合中的單個(gè)成員(DocumentProperty對(duì)象DocumentProperty對(duì)象的屬性可操作屬Name屬性:獲取或設(shè)置文檔屬性的名稱(chēng)性為可讀/寫(xiě)。該屬性使用msoDocProperties枚舉類(lèi)型,具體各枚舉常量如下:msoPropertyTypeString:String5.255.255.255.26SubDimSaveTimeAsSaveTime=ActiveWorkbook.BuiltinDocumentProperties("LastSaveTime").ValueIfSaveTime=""ThenMsgBoxActiveWorkbook.Name&工作簿沒(méi)有保存MsgBox本工作簿在&SaveTime&保存ActiveWorkbook.NameEndIfEnd過(guò)VBA代碼設(shè)置工作薄的密碼。工作簿的密碼,可設(shè)置其Password屬性為空字符串,代碼如下: ActiveWorkbook.Password= Excel中,用戶也可以直接通過(guò)操作來(lái)設(shè)置文檔的密碼。單擊“Office按鈕”打開(kāi)5.275.28數(shù)據(jù),用戶需要設(shè)置工作薄密碼,原始數(shù)據(jù)如圖5.29所示。5.295.295.30SubWith.PasswordInputBox("輸入工作薄的密碼EndWithEnd5.315.315.325.33案例 查看用戶狀態(tài)信戶可以通過(guò)VBA代碼獲取用戶狀態(tài)的信息。案例 查看用戶狀態(tài)信戶可以通過(guò)VBA代碼獲取用戶狀態(tài)的信息。在ExcelVBA中,用戶可以使用Workbook.UserStatus屬性來(lái)獲取用戶的信息。表達(dá)式 第二個(gè)元素是用戶打開(kāi)工作簿的日期和時(shí)間,第三個(gè)元素是表示清單類(lèi)型的數(shù)字,1表示獨(dú)占,2表示共享。UserStatus屬性不返回以只讀方式打開(kāi)指定工作簿的用戶的信息。UBound(arrayname[, arrayname:數(shù)組變量的名稱(chēng),遵循標(biāo)準(zhǔn)變量命名約dimension:指定返回哪一維的上界。1表示第一維,2原始數(shù)據(jù)如圖5.34所示。5.34Sub 5.355.35案例 激活工作DimRowAsIntegerWithActiveWorkbook.Sheets(1)ForRow=1ToUBound(UserInfo,.Cells(Row+1,1)=UserInfo(Row,.Cells(Row+1,2)=UserInfo(Row,2)SelectCaseUserInfo(Row,3)Case.Cells(Row13).Value獨(dú)占"Case2.Cells(Row13).Value共享EndWithEndExcelVBAWorkbook.Activate來(lái)激活工作薄。當(dāng)用戶激活工作ExcelVBAWorkbook.Activate來(lái)激活工作薄。當(dāng)用戶激活工作表達(dá)式 表達(dá)式表示作簿的窗口時(shí),將發(fā)生事件,但不發(fā)生工作簿的Activate5.36SubActiveWorkBooks()DimiAsIntegerDimstrMsgAsFori=1TointNumstrMsgMsgBox("&i&個(gè)工作簿被激活,繼續(xù)激活?vbYesNo)IfstrMsg=vbNoThenExitEnd5.375.385.375.385.38Ifi=intNumEndIfNextEnd5.39案例 保護(hù)工作5.39案例 保護(hù)工作 方法的三個(gè)參數(shù)都可省略,各參數(shù)的含義如Windows:如果True,則保護(hù)工作簿窗口,此時(shí)該工作簿右上角的最小化和關(guān)閉按鈕消失。如果省略此參數(shù),則窗口不受保護(hù)。默認(rèn)值False5.405.405.41SubDimpwAspwApplication.InputBox(prompt:="設(shè)置工作簿的密碼:_Title:="設(shè)置密碼",Type:=2)ActiveWorkbook.ProtectPassword:=pw,Structure:=True,End5.42為了撤銷(xiāo)工作薄5.42為了撤銷(xiāo)工作薄的保護(hù),用戶可以選擇“審閱”|“更改”|“保護(hù)工作薄”|“保護(hù)5.435.445.45ExcelVBA5.45ExcelVBAUnprotect方法可取消工作簿的保護(hù)。如果工作簿不是受表達(dá)式 案例 設(shè)置名ExcelVBARefersTo:除非指定了其他RefersTo參數(shù),否則該參數(shù)說(shuō)明名稱(chēng)引用的內(nèi)容(格式表示法以宏語(yǔ)言表示。如果引用不存在,則返 NothingVisible:如果為T(mén)rue,則用常規(guī)方式定義名稱(chēng)。如果為False,則將名稱(chēng)定義為隱藏表達(dá)式.Add(Name,RefersTo,Visible,MacroType,ShortcutKey,Category,RefersToLocal,CategoryLocal,RefersToR1C1,TrueTrue3ShortcutKey:宏的快捷鍵。必須是單個(gè)字母,例如“z”或“Z”。只用于命令宏。CategoryMacroType12,則該參數(shù)為宏或函數(shù)的分類(lèi)。該分類(lèi)在“函數(shù)向?qū)А敝惺褂谩?梢杂脭?shù)字(1開(kāi)始)或名稱(chēng)(以宏語(yǔ)言指定)引用現(xiàn)有的分類(lèi)。如果指定的分類(lèi)不存在,Excel將創(chuàng)建新分類(lèi)。用A1格式表示法以用戶語(yǔ)言表示。CategoryLocal:如果未指定Category,則為以用戶語(yǔ)言標(biāo)識(shí)自定義函數(shù)分類(lèi)的文本。用R1C1格式表示法以宏語(yǔ)言表示。RefersToR1C1LocalRefersTo參數(shù),否則該參數(shù)說(shuō)明名稱(chēng)引用的內(nèi)容(使用R1C1格式表示法以用戶語(yǔ)言表示。RefersTo參數(shù)必須以A1樣式表示法指定,包括必要時(shí)使用的美元符($)。例如,如Sheet1A10RefersToA10:B1(數(shù)據(jù),用戶為原始區(qū)域設(shè)置名稱(chēng),原始數(shù)據(jù)如圖5.46所示。5.465.47PublicSub End5.48RefersToR1C15.48RefersToR1C1案例 判斷工作簿是否存VBA程序中,打開(kāi)不存在的工作簿,將產(chǎn)生錯(cuò)誤。因此,在打開(kāi)工作簿之前,先ExcelVBAVBADir函數(shù)來(lái)檢查某些文件或目錄是否存在。其語(yǔ) Dir[(pathname[, pathname用來(lái)指定文件名的字符串表達(dá)式,可能一個(gè)常數(shù)或數(shù)值表達(dá)式,其總和用來(lái)指定文件屬性。如果省略,則會(huì)返回匹配pathname數(shù)據(jù),用戶需要首先判斷其他工作薄是否存在,原始數(shù)據(jù)如圖5.49所示。5.495.495.50SubDimstrAsTitle:="文件名",Type:=2)Ifstr="False"ThenExitSubIfNotLen(Dir(str))>0MsgBox工作簿&str&EndIfEnd5.515.51案例 判斷打開(kāi)的工作薄個(gè)ExcelVBA中,Workbooks.Count屬性的功能是返回集合中對(duì)象的數(shù)量。其語(yǔ)法表表達(dá)式 5.525.52SubDimIntnumberAsIntegerMsgBox打開(kāi)的工作簿有&Intnumber&個(gè)"EndSub5.53很顯然,Workbooks.Count案例 備份工作5.53很顯然,Workbooks.Count案例 備份工作Path屬性:Workbook對(duì)象的Path屬性,返回工作簿對(duì)象的完整路徑。如果其Dialogs:ApplicationDialogsDialogs集合,該集合包含了Excel的內(nèi)置對(duì)話框,通過(guò)設(shè)置集合的常量可調(diào)用這些內(nèi)置對(duì)話框。在本例代碼中,用來(lái)FullName屬性:通過(guò)Workbook對(duì)象的FullName屬性,可獲取工作簿的名稱(chēng),InStrRev函數(shù):該函數(shù)返回一個(gè)字符串在另一個(gè)字符串中出現(xiàn)的位置,從字符InstrRev(stringcheck,stringmatch[,start[, 始搜索。如果start包含Null,則產(chǎn)生一個(gè)錯(cuò)誤。數(shù)據(jù),用戶需要將其數(shù)據(jù)進(jìn)行備份,原始數(shù)據(jù)如圖5.54所示。提示:若需要從字符串首部向后查找子串,可使用InstrSubCopyWorkBoChecks()DimwbAsWorkbookSubCopyWorkBoChecks()DimwbAsWorkbookDimiAsIntegerDimCheckAsIfwb.Path=""ThenMsgBox"請(qǐng)先保存工作薄EndIfFileName=i=InStrRev(FileName,Ifi>0ThenFileName=Left(FileName,i-1)FileNameFileName&工作薄的備份文件&".bak"Check=WithwbCheck=TrueEndSetwb=NothingIfNotCheck5.55在上面的程序中,首先獲取對(duì)當(dāng)前工作簿的引用,然后獲取工作簿的全名,使用5.55在上面的程序中,首先獲取對(duì)當(dāng)前工作簿的引用,然后獲取工作簿的全名,使用InStrRev函數(shù)查找工作簿全名是否有擴(kuò)展名,若有擴(kuò)展名,則截取文件名的前面部分(不EndIfEnd案例 強(qiáng)制保存工作BeforeClose事案例 強(qiáng)制保存工作BeforeClose事數(shù)設(shè)置為T(mén)rue,則停止關(guān)閉操作,返回到工作簿中繼續(xù)操作(工作簿保持打開(kāi)狀態(tài)。BeforeClose事件中加上以下功能,而不應(yīng)將對(duì)系統(tǒng)的設(shè)置或Excel工作簿中進(jìn)行修改后,如果沒(méi)有保存就關(guān)閉工作簿,Excel5.56PrivateSubWorkbook_BeforeClose(CancelasBoolean)IfbFlag=FalsethenCancel=TrueEndPrivateSubWorkbook_BeforeClose(CancelasBoolean)Me.Saved=TrueEndPrivateSubWorkbook_BeforeClose(CancelAsEnd存修改,然后關(guān)閉工作薄。其中原始數(shù)據(jù)如圖5.57所示。5.57存修改,然后關(guān)閉工作薄。其中原始數(shù)據(jù)如圖5.57所示。5.57在本例中,當(dāng)用戶關(guān)閉工作薄時(shí),Excel不會(huì)顯示提示保存的對(duì)話框,而是直接保存在本例的代碼中,WorkbookSaved屬性用來(lái)判斷工作簿是否保存。如果指定工作簿從上次保存至今未發(fā)生過(guò)更改,則該屬性值為T(mén)rue。案例 限制打PrivateSubWorkbook_BeforeClose(CancelasBoolean)IfMe.Saved=FalseThenMe.SaveEnd印指定工作簿之前,將產(chǎn)生BeforePrint事印指定工作簿之前,將產(chǎn)生BeforePrint事件。該事件過(guò)程的結(jié)構(gòu)如下數(shù)據(jù),用戶需要限制用戶打印該工作薄,原始數(shù)據(jù)如圖5.58所示。5.58當(dāng)用戶選擇“Office按鈕”菜單中選擇“打印”命令,如圖5.59所示,可打印工作簿中PrivateSubWorkbook_BeforePrint(CancelAsBoolean)MsgBox"不允許打??!",vbCritical+vbOKOnlyCancel=TrueEndPrivateSubWorkbook_BeforePrint(CancelAsEnd5.595.60案例 限制保1.5.595.60案例 限制保1.SaveAsUI:如果將顯示“

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論