part3 可以將工作表或者整個(gè)工作簿保存為HTML(HyperText Markup
Language,,超文本標(biāo)記語(yǔ)言)格式,,用Web瀏覽器就可以訪問(wèn)到。 隱藏公式在激活單元格的時(shí)候這些公式不出現(xiàn)在Excel的公示欄中,。選擇應(yīng)用公式的單元格,,然后在“單元格格式”對(duì)話框的“保護(hù)”選項(xiàng)卡中,確保選中“隱藏”復(fù)選框,。 相對(duì)引用:這種引用完全是相對(duì)的,。當(dāng)復(fù)制公式時(shí),單元格引用將調(diào)整到它的新位置,,例如A1,。絕對(duì)引用:這種引用完全是絕對(duì)的。當(dāng)復(fù)制公式時(shí),,單元格引用將不會(huì)發(fā)生改變,,例如$A$1。絕對(duì)行引用:這種引用不完全是絕對(duì)的,。當(dāng)復(fù)制公式時(shí),,列部分進(jìn)行調(diào)整,但是行部分不發(fā)生改變,,例如A$1,。絕對(duì)列引用:這種引用不完全是絕對(duì)的。當(dāng)復(fù)制公式時(shí),,行部分進(jìn)行調(diào)整,,但是列部分不發(fā)生改變,例如$A1,。 公式中對(duì)單元格和單元格區(qū)域的引用,,如果要引用另一個(gè)工作表中的單元格:=Sheet!A1
1。還可以創(chuàng)建引用另一個(gè)工作簿中的單元格的連接公式:=[Budget.xls]Sheet1!A1
1,。如果引用中的工作簿名稱包括一個(gè)或者多個(gè)空格:='[Budget For 2003.xls]Sheet1'!A1
A1,。如果鏈接的工作簿被關(guān)閉,那么就必須在工作簿引用中添加完整的路徑:='C:MSOFFICE\EXCEL\[Budget For
2003.xls]Sheet1'!A1 A1,。 假設(shè)損壞的文件名稱為“Badfile.xls”,,先打開(kāi)一個(gè)空白的工作簿,然后在工作簿Sheet1的單元格A1種輸入如下公式,,進(jìn)而嘗試從工作不文件的Sheet1種回復(fù)損壞的數(shù)據(jù):='C:Files\[Badfiles.xls]Sheet1'!$A$1,。 P34R1C1表示法、P36將名稱應(yīng)用于現(xiàn)有的引用,、P37交叉名稱,、P41數(shù)組公式等沒(méi)看懂。
=TRIM(A1) 功能:刪除多余的空格,;=FIND(' ',B1,1)
功能:定位第一個(gè)空格,;=FIND(' ',B1,C1 1)
功能:定位第二個(gè)空格;=IF(ISERROR(D1),C1,D1)
功能:如果沒(méi)有第二個(gè)空格,,則采用第一個(gè)空格,;=LEFT(B1,C1)
功能:取出第一個(gè)空格之前的字符;=RIGHT(B1,LEN(B1)-E1)
功能:取出最后一個(gè)空格之后的字符,;=F1&G1 功能連接兩個(gè)單元格的字符 part4 按ctrl N快捷鍵將不允許選擇模板,而是生成一個(gè)默認(rèn)的工作簿,。 模板可以存儲(chǔ)在本地計(jì)算機(jī)上的兩個(gè)位置中:1)XLStart文件夾:這里存儲(chǔ)名為Book.xlt和Sheet.xlt的自動(dòng)模板,,也可以將工作簿模板放在這個(gè)文件夾中。2)Templates文件夾:存儲(chǔ)在這里的工作簿模板將出現(xiàn)在“新建”對(duì)話框中,。 找Templates文件夾的位置,,可以執(zhí)行下列VBA語(yǔ)句:MsgBox
Application.TemplatesPath
part6 在規(guī)劃滿足用戶需求的應(yīng)用程序起始階段,考慮一些常規(guī)的地方,,如:1)文件結(jié)構(gòu),;2)數(shù)據(jù)結(jié)構(gòu);3)使用工是還是VBA,;4)采用加載宏還是XLS文件,;5)Excel的版本;6)錯(cuò)誤處理,;7)使用特性,,如果應(yīng)用程序需要匯總很多數(shù)據(jù),可能會(huì)考慮使用Excel的數(shù)據(jù)透視表特性,;8)性能問(wèn)題,;9)安全級(jí)別。 Excel提供了保護(hù)工作表和工作表各個(gè)部分的幾種方法:1)鎖定特定的單元格;2)保護(hù)整個(gè)工作部,;3)隱藏特定單元格中的公式,;4)鎖定工作表上的對(duì)象;5)隱藏行,、列,、工作表和文檔;6)將Excel工作簿指定為建議只讀,;7)指定密碼,;8)使用密碼保護(hù)的加載宏。 使得電子表格比較美觀和直觀:1)在格式,、字體,、文本大小和顏色上保持一致;2)一個(gè)界面或者對(duì)話框上不要填滿太多信息,,比較好的做法是一次只呈現(xiàn)一兩組信息,;3)不要使用過(guò)多的顏色;4)注意數(shù)字格式,,使用一致的字樣,、字體大小和邊框。 除非確切知道應(yīng)用程序的用戶使用的視頻分辨率,,否則要使用最低分辨率(800*600像素)模式設(shè)計(jì)應(yīng)用程序,。可以從VBA使用Windows
API調(diào)用來(lái)確定用戶視頻分辨率,。
part7 “視圖”-“立即窗口”命令的快捷鍵為Ctrl G,。 如果想把某個(gè)模塊或者UserForm對(duì)象復(fù)制到另一個(gè)工程中實(shí)際上沒(méi)有必要先導(dǎo)出再導(dǎo)入這個(gè)對(duì)象。確保兩個(gè)工程都處于打開(kāi)狀態(tài),,然后只需要激活“工程資源瀏覽器”窗口,,再將對(duì)象從一個(gè)工程拖放到另一個(gè)工程中即可。 工程中的每個(gè)對(duì)象都有一個(gè)關(guān)聯(lián)的代碼窗口:1)工作簿本身(“工程資源瀏覽器”窗口中的ThisWorkbook),;2)工作簿中的工作簿“Sheet1”或者圖表工作表“Chart1”,;3)VBA模塊;4)一個(gè)類模塊(這種特殊類型的模塊允許創(chuàng)建新的對(duì)象類),;5)一個(gè)用戶窗體,。 如果編寫(xiě)在工作簿打開(kāi)時(shí)要執(zhí)行的過(guò)程,那么該過(guò)程必須位于ThisWorkbook對(duì)象的“代碼”窗口,,而且該過(guò)程必須有一個(gè)特殊的名稱,。 把一條很長(zhǎng)的指令分解在兩行或者更多的行中,要在代碼行的末尾加上一個(gè)空格和一個(gè)下劃線字符,。 要求變量聲明:如果不聲明變量,,那么所有這些變量都將為Variant數(shù)據(jù)類型,。 使用Tab鍵而不是空格鍵縮進(jìn)代碼,使用Shift Tab快捷鍵取消縮進(jìn)代碼行,。 宏錄制器不能生成執(zhí)行循環(huán)(也就是重復(fù)語(yǔ)句),、給變量賦值、執(zhí)行條件語(yǔ)句,、顯示對(duì)話框等的代碼,。 按Alt F11激活VBE窗口,Excel不要最大化,,否則將不能同時(shí)看到VBE窗口和Excel的窗口,。 當(dāng)選擇Excel的“插入”-“批注”命令輸入單元格批注的時(shí)候,就創(chuàng)建了一個(gè)Comment對(duì)象,。 Range('C1:C10 A6:E6') = 3
Excel單元格區(qū)域交叉運(yùn)算符(C10和A6之間的空格表示),,進(jìn)而返回兩個(gè)單元格區(qū)域的較差部分,在這個(gè)例子中較差部分是單元格C6,,在單元格C6中輸入“3“則為如上結(jié)果,。
part8 VBA過(guò)程不需要處理任何對(duì)象。 對(duì)于稍長(zhǎng)的代碼行,,使用VBA的換行連續(xù)序列,,用空格和下劃線表示。 VBA變量的名稱是不區(qū)分大小寫(xiě)的,。 如果要測(cè)試一個(gè)不含某個(gè)特殊指令或者一組指令的過(guò)程,,不用刪除這些指令,只要將它們轉(zhuǎn)換為注釋即可,,方法是在指令開(kāi)始的地方插入一個(gè)單引號(hào),。VBE的“編輯”工具欄“設(shè)置注釋塊”、“解除注釋塊”,。 如果希望VBA應(yīng)用程序運(yùn)行的速度盡可能的快,就要聲明變量,。 TypeName函數(shù)來(lái)確定變量的數(shù)據(jù)類型,。 Mod運(yùn)算符返回兩個(gè)數(shù)相除后的余數(shù)。 不能使用具有等價(jià)的VBA函數(shù)的工作表函數(shù),,例如VBA不能訪問(wèn)Excel的SQRT工作表函數(shù),,因?yàn)閂BA有它自己函數(shù)版本:Sqr。 在VBA中只有一種情況下必須使用GoTo語(yǔ)句,,那就是進(jìn)行錯(cuò)誤捕獲的時(shí)候,。
part9 為了使得錯(cuò)誤處理過(guò)程起作用,必須關(guān)閉“發(fā)生錯(cuò)誤則中斷”設(shè)置,。 使用On
Error語(yǔ)句指定錯(cuò)誤發(fā)生時(shí)要采取的措施:1)忽略錯(cuò)誤并允許VBA繼續(xù)執(zhí)行代碼,。2)跳轉(zhuǎn)到代碼中特殊的錯(cuò)誤處理節(jié),進(jìn)而采取動(dòng)作??梢栽诖a中插入如下語(yǔ)句:On
Error Resume Next 當(dāng)缺乏有關(guān)特殊方法或者屬性的信息時(shí),,最好的辦法是打開(kāi)宏錄制器,然后在執(zhí)行某相關(guān)的動(dòng)作時(shí),,檢查生成的代碼,。
part10 part11
Sub DeleteEmptyRows() Dim LastRow As Long, r As Long LastRow = ActiveSheet.UsedRange.Rows.Count LastRow = LastRow ActiveSheet.UsedRange.Row - 1 Application.ScreenUpdating = False For r = LastRow To 1 Step -1 If WorksheetFunction.CountA(Rows(r)) = 0 Then
Rows(r).Delete Next r End Sub Windows API聲明必須位于VBA模塊的頂部,。 為了確定系統(tǒng)是否支持聲音,,可以使用CanPlauSounds方法。
If Not
Application.CanPlaySounds Then MsgBox
'Sorry, sound is not supported on your system.' Exit
Sub End If part12 P328列表框的技巧等沒(méi)看懂,。 由控件的Value函數(shù)決定哪個(gè)選項(xiàng)卡(或者頁(yè))顯示在最前面,。值為0則顯示第一個(gè)選項(xiàng)卡,值為1則顯示第二個(gè)選項(xiàng)卡,,依次類推,。 P348創(chuàng)建向?qū)А353模仿MsgBox函數(shù)等沒(méi)看懂,。
part17 part19 當(dāng)打開(kāi)工作簿(或者加載宏)時(shí)將觸發(fā)這種事件并執(zhí)行Workbook_Open過(guò)程。Workbook_Open過(guò)程幾乎可以做任何事,,通常用于以下的任務(wù):顯示歡迎消息,;打開(kāi)其他的工作簿;設(shè)置自定義菜單或者工具欄,;激活某個(gè)特殊的工作表或者單元格,;確保滿足特定的條件;設(shè)置某些自動(dòng)化的特性,;設(shè)置工作表的ScrollArea屬性,;為工作表設(shè)置UserInterfaceOnly保護(hù)。 確定何時(shí)打開(kāi)工作簿,,UpdateLogFile過(guò)程將打開(kāi)一個(gè)文本文件,。如果該文件不存在,就創(chuàng)建它,。然后寫(xiě)有關(guān)打開(kāi)的工作簿的關(guān)鍵信息:
文件名及其完整的路徑,、日期、時(shí)間和用戶名,。Workbook_Open過(guò)程將調(diào)用Init過(guò)程,。因此,,當(dāng)工作簿打開(kāi)時(shí),Init過(guò)程就會(huì)創(chuàng)建這個(gè)對(duì)象變量,。
part21 可以通過(guò)選擇“文件”-“打開(kāi)”命令打開(kāi)大多數(shù)加載宏文件,,因?yàn)榧虞d宏從來(lái)不會(huì)是活動(dòng)工作簿。然而,,選擇“文件”-“關(guān)閉”命令不能關(guān)閉加載宏,。只能通過(guò)推出和重新啟動(dòng)Excel來(lái)除去加載宏,或者通過(guò)執(zhí)行VBA代碼的方法關(guān)閉加載宏,。例如:Workbooks('myaddin.x.a').Close
,。用”文件“-”打開(kāi)“命令打開(kāi)加載宏時(shí),將打開(kāi)相應(yīng)的文件,,但是并不算正式安裝這個(gè)加載宏,。
part26 潛在的兼容性問(wèn)題分為5類:1)文件格式問(wèn)題;2)新特性問(wèn)題,;3)32位與16位的問(wèn)題,;4)Windows與Macintosh的問(wèn)題;5)國(guó)際通用的問(wèn)題,。
part30 Internet中有數(shù)千個(gè)VBA示例,,www.j-walk.com/ss/或者在www.google.com網(wǎng)站中搜索。 Excel可以用Windows
API函數(shù)播放WAV和MIDI文件,。如果是02或者更高的版本,,可以利用新的Speech對(duì)象。當(dāng)執(zhí)行下面的語(yǔ)句時(shí),,將用用戶的姓名問(wèn)候用戶:Application.Speech.Speak
('Hello' & Application.UserName) 如果在啟動(dòng)Excel時(shí)崩潰,,可以試試先刪除*.xlb文件。為此,,要Excel關(guān)閉,。然后搜索硬盤中的*.xlb文件(文件名和位置將有所不同)。先創(chuàng)建這個(gè)文件的備份副本,,然后刪除,,接著重新啟動(dòng)Excel。 VBA使用顏色來(lái)區(qū)分各種類型的文本:批注,、關(guān)鍵字、標(biāo)識(shí)符,、帶語(yǔ)法錯(cuò)誤的語(yǔ)句等,。可以通過(guò)在VBE中選擇“工具”-“選項(xiàng)”命令(在“編輯器格式”選項(xiàng)卡中)調(diào)整使用的這些顏色和字體,。 除了刪除宏以外,,還要確保刪除了存儲(chǔ)它們的VBA模塊,。 換行連續(xù)字符序列實(shí)際上包含兩個(gè)字符:一個(gè)下劃線和其后的一個(gè)空格。 工作簿事件過(guò)程(Sub
Workbook_Open)必須放在ThisWorkbook對(duì)象的代碼模塊中,。工作表事件過(guò)程必須放在相應(yīng)的Sheet對(duì)象的代碼模塊中,,如VBE“工程”窗口所示。 按Ctrl Alt F9快捷鍵強(qiáng)制重算使用了自定義工作表函數(shù)的公式,。 針對(duì)活動(dòng)工作表并刪除所有非公式的單元格的內(nèi)容(不影響單元格的格式),。
On Error Resume Next Cells.SpecialCells(xlCellTypeConstants, 23).ClearContents 使用On Error Resume
Next可以防止在沒(méi)有符合要求的單元格時(shí)出現(xiàn)錯(cuò)誤。 選中某一列或者某一行中的最后一項(xiàng),,可以使用Ctrl Shift 向下箭頭鍵或者Ctrl Shift
向右箭頭鍵,,或者VBA代碼:Selection.End(xlDown).Select。其他的常量有xlToLeft,,xlToRight和xlUp,。 編寫(xiě)VBA指令創(chuàng)建一個(gè)公式,如果需要在引號(hào)引起來(lái)的文本中插入引號(hào),,使用兩組雙引號(hào):=
'=IF(A1=''Yes'',TRUE,FALSE)' 創(chuàng)建加載宏之后對(duì)其修改,,先激活VBE(按Alt
F11快捷鍵),然后將ThisWorkbook對(duì)象的IsAddIn屬性設(shè)置為False,。對(duì)加載宏進(jìn)行修改,,然后把IsAddIn屬性設(shè)置為True,最后重新保存文件,。
part31
|