版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精通Excel2010-常用宏技巧1、設(shè)置密碼窗口12、本示例為設(shè)置提示窗口23、本示例為設(shè)置工作表保護(hù)密碼24、本示例關(guān)閉除正在運(yùn)行本示例的工作簿以外的其他所有工作簿,并保存其更改內(nèi)容25、每次打開工作簿時(shí),本示例都最大化 Microsoft Excel 窗口26、本示例顯示活動工作表的名稱27、本示例保存當(dāng)前活動工作簿的副本28、下述過程激活工作簿中的第四張工作表39、下述過程激活工作簿中的第1張工作表310、本示例通過將 Saved 屬性設(shè)為 True 來關(guān)閉包含本段代碼的工作簿,并放棄對該工作簿的任何更改311、本示例對自動重新計(jì)算功能進(jìn)行設(shè)置,使 Microsoft Excel 不對
2、第一張工作表自動進(jìn)行重新計(jì)算312、下述過程打開 C 盤上名為 MyFolder 的文件夾中的 MyBook.xls 工作簿313、本示例顯示活動工作簿中工作表 sheet1 上單元格 A1 中的值314、本示例顯示活動工作簿中每個(gè)工作表的名稱315、本示例向活動工作簿添加新工作表 , 并設(shè)置該工作表的名稱416、本示例將新建的工作表移到工作簿的末尾417、本示例將新建工作表移到工作簿的末尾418、本示例新建一張工作表,然后在第一列中列出活動工作簿中的所有工作表的名稱419、本示例將第十行移到窗口的最上面?420、當(dāng)計(jì)算工作簿中的任何工作表時(shí),本示例對第一張工作表的 A1:A100 區(qū)域進(jìn)行排
3、序521、本示例顯示工作表 Sheet1 的打印預(yù)覽522、本示例保存當(dāng)前活動工作簿?523、本示例保存所有打開的工作簿,然后關(guān)閉 Microsoft Excel524、下例在活動工作簿的第一張工作表前面添加兩張新的工作表525、本示例設(shè)置 15 秒后運(yùn)行 my_Procedure 過程,從現(xiàn)在開始計(jì)時(shí)526、本示例設(shè)置 my_Procedure 在下午 5 點(diǎn)開始運(yùn)行627、本示例撤消前一個(gè)示例對 OnTime 的設(shè)置628、每當(dāng)工作表重新計(jì)算時(shí),本示例就調(diào)整 A 列到 F 列的寬度629、本示例使活動工作簿中的計(jì)算僅使用顯示的數(shù)字精度630、本示例將工作表 Sheet1 上的 A1:G37
4、 區(qū)域剪下,并放入剪貼板631、Calculate 方法632、本示例更新當(dāng)前活動工作簿中的所有鏈接733、本示例設(shè)置第一張工作表的滾動區(qū)域71、 設(shè)置密碼窗口If Application.InputBox(請輸入密碼:) = 1234 Then A1 = 1 密碼正確時(shí)執(zhí)行 Else: MsgBox 密碼錯誤,即將退出! 此行與第2行共同設(shè)置密碼 End If 2、 本示例為設(shè)置提示窗口X = MsgBox(是否真的要結(jié)帳?, vbYesNo) If X = vbYes Then Close 3、 本示例為設(shè)置工作表保護(hù)密碼ActiveSheet.Protect Password:= 保護(hù)工
5、作表并設(shè)置密碼 ActiveSheet.Unprotect Password:= 撤消工作表保護(hù)并取消密碼 4、 本示例關(guān)閉除正在運(yùn)行本示例的工作簿以外的其他所有工作簿,并保存其更改內(nèi)容For Each w In Workbooks If w.Name ThisWorkbook.Name Then w.Close SaveChanges:=True End If Next w 5、 每次打開工作簿時(shí),本示例都最大化 Microsoft Excel 窗口 Application.WindowState = xlMaximized 6、 本示例顯示活動工作表的名稱MsgBox The name o
6、f the active sheet is & ActiveSheet.Name 7、 本示例保存當(dāng)前活動工作簿的副本ActiveWorkbook.SaveCopyAs C:TEMPXXXX.XLS 8、 下述過程激活工作簿中的第四張工作表Sheets(4).Activate 9、 下述過程激活工作簿中的第1張工作表Worksheets(1).Activate 10、 本示例通過將 Saved 屬性設(shè)為 True 來關(guān)閉包含本段代碼的工作簿,并放棄對該工作簿的任何更改ThisWorkbook.Saved = True ThisWorkbook.Close 11、 本示例對自動重新計(jì)算功能進(jìn)行設(shè)
7、置,使 Microsoft Excel 不對第一張工作表自動進(jìn)行重新計(jì)算 Worksheets(1).EnableCalculation = False 12、 下述過程打開 C 盤上名為 MyFolder 的文件夾中的 MyBook.xls 工作簿 Workbooks.Open (C:MyFolderMyBook.xls) 13、 本示例顯示活動工作簿中工作表 sheet1 上單元格 A1 中的值 MsgBox Worksheets(Sheet1).Range(A1).Value 14、 本示例顯示活動工作簿中每個(gè)工作表的名稱 For Each ws In Worksheets MsgBox
8、 ws.Name Next ws 15、 本示例向活動工作簿添加新工作表 , 并設(shè)置該工作表的名稱 Set NewSheet = Worksheets.Add NewSheet.Name = current Budget 16、 本示例將新建的工作表移到工作簿的末尾 Private Sub Workbook_NewSheet(ByVal Sh As Object) Sh.Move After:=Sheets(Sheets.Count) End Sub 17、 本示例將新建工作表移到工作簿的末尾 Private Sub App_WorkbookNewSheet(ByVal Wb As Workb
9、ook, _ ByVal Sh As Object) Sh.Move After:=Wb.Sheets(Wb.Sheets.Count) End Sub 18、 本示例新建一張工作表,然后在第一列中列出活動工作簿中的所有工作表的名稱Set NewSheet = Sheets.Add(Type:=xlWorksheet) For i = 1 To Sheets.Count NewSheet.Cells(i, 1).Value = Sheets(i).Name Next i 19、 本示例將第十行移到窗口的最上面?Worksheets(Sheet1).Activate ActiveWindow.S
10、crollRow = 10 20、 當(dāng)計(jì)算工作簿中的任何工作表時(shí),本示例對第一張工作表的 A1:A100 區(qū)域進(jìn)行排序Private Sub Workbook_SheetCalculate(ByVal Sh As Object) With Worksheets(1) .Range(a1:a100).Sort Key1:=.Range(a1) End With End Sub 21、 本示例顯示工作表 Sheet1 的打印預(yù)覽Worksheets(Sheet1).PrintPreview 22、 本示例保存當(dāng)前活動工作簿?ActiveWorkbook.Save 23、 本示例保存所有打開的工作簿
11、,然后關(guān)閉 Microsoft Excel For Each w In Application.Workbooks w.Save Next w Application.Quit 24、 下例在活動工作簿的第一張工作表前面添加兩張新的工作表Worksheets.Add Count:=2, Before:=Sheets(1) 25、 本示例設(shè)置 15 秒后運(yùn)行 my_Procedure 過程,從現(xiàn)在開始計(jì)時(shí) Application.OnTime Now + TimeValue(00:00:15), my_Procedure 26、 本示例設(shè)置 my_Procedure 在下午 5 點(diǎn)開始運(yùn)行 Ap
12、plication.OnTime TimeValue(17:00:00), my_Procedure 27、 本示例撤消前一個(gè)示例對 OnTime 的設(shè)置Application.OnTime EarliestTime:=TimeValue(17:00:00), _ Procedure:=my_Procedure, Schedule:=False 28、 每當(dāng)工作表重新計(jì)算時(shí),本示例就調(diào)整 A 列到 F 列的寬度 Private Sub Worksheet_Calculate() Columns(A:F).AutoFit End Sub 29、 本示例使活動工作簿中的計(jì)算僅使用顯示的數(shù)字精度 A
13、ctiveWorkbook.PrecisionAsDisplayed = True 30、 本示例將工作表 Sheet1 上的 A1:G37 區(qū)域剪下,并放入剪貼板 Worksheets(Sheet1).Range(A1:G37).Cut 31、 Calculate 方法 計(jì)算所有打開的工作簿、工作簿中的一張?zhí)囟ǖ墓ぷ鞅砘蛘吖ぷ鞅碇兄付▍^(qū)域的單元格,如下表所示: 所有打開的工作簿 Application.Calculate (或只是 Calculate) 計(jì)算指定工作表Worksheets(Sheet1).Calculate 指定區(qū)域 Worksheets(1).Rows(2).Calcula
14、te 本示例對自動重新計(jì)算功能進(jìn)行設(shè)置,使 Microsoft Excel 不對第一張工作表自動進(jìn)行重新計(jì)算 Worksheets(1).EnableCalculation = False 本示例計(jì)算 Sheet1 已用區(qū)域中 A 列、B 列和 C 列的公式 Worksheets(Sheet1).UsedRange.Columns(A:C).Calculate 32、 本示例更新當(dāng)前活動工作簿中的所有鏈接ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources 33、 本示例設(shè)置第一張工作表的滾動區(qū)域Worksheets(1).Scr
15、ollArea = a1:f10 34、 本示例新建一個(gè)工作簿,提示用戶輸入文件名,然后保存該工作簿Set NewBook = Workbooks.Add Do fName = Application.GetSaveAsFilename Loop Until fName False NewBook.SaveAs Filename:=fName 35、 本示例打開 Analysis.xls 工作簿,然后運(yùn)行 Auto_Open 宏 Workbooks.Open ANALYSIS.XLS ActiveWorkbook.RunAutoMacrosxlAutoOpen 36、 本示例對活動工作簿運(yùn)行
16、Auto_Close 宏,然后關(guān)閉該工作簿W(wǎng)ith ActiveWorkbook .RunAutoMacros xlAutoClose .Close End With 37、 在本示例中,Microsoft Excel 向用戶顯示活動工作簿的路徑和文件名稱Sub UseCanonical() Display the full path to user. MsgBox ActiveWorkbook.FullNameURLEncoded End Sub 38、 本示例顯示當(dāng)前工作簿的路徑及文件名(假定尚未保存此工作簿)MsgBox ActiveWorkbook.FullName 39、 本示例關(guān)閉
17、 Book1.xls,并放棄所有對此工作簿的更改Workbooks(BOOK1.XLS).Close SaveChanges:=False 40、 本示例關(guān)閉所有打開的工作簿如果某個(gè)打開的工作簿有改變,Microsoft Excel 將顯示詢問是否保存更改的對話框和相應(yīng)提示W(wǎng)orkbooks.Close 41、 本示例在打印之前對當(dāng)前活動工作簿的所有工作表重新計(jì)算Private Sub Workbook_BeforePrint(Cancel As Boolean) For Each wk In Worksheets wk.Calculate Next End Sub 42、 本示例對查詢表一中
18、的第一列數(shù)據(jù)進(jìn)行匯總,并在數(shù)據(jù)區(qū)域下方顯示第一列數(shù)據(jù)的總和Set c1 = Sheets(sheet1).QueryTables(1).ResultRange.Columns(1) c1.Name = Column1 c1.End(xlDown).Offset(2, 0).Formula = =sum(Column1) 43、 本示例取消活動工作簿中的所有更改ActiveWorkbook.RejectAllChanges 44、 本示例在商業(yè)問題中使用規(guī)劃求解函數(shù),以使總利潤達(dá)到最大值SolverSave 函數(shù)將當(dāng)前問題保存到活動工作表上的某一區(qū)域 Worksheets(Sheet1).Act
19、ivate SolverReset SolverOptions Precision:=0.001 SolverOK SetCell:=Range(TotalProfit), _ MaxMinVal:=1, _ ByChange:=Range(C4:E6) SolverAdd CellRef:=Range(F4:F6), _ Relation:=1, _ FormulaText:=100 SolverAdd CellRef:=Range(C4:E6), _ Relation:=3, _ FormulaText:=0 SolverAdd CellRef:=Range(C4:E6), _ Relat
20、ion:=4 SolverSolve UserFinish:=False SolverSave SaveArea:=Range(A33) 45、 本示例隱藏 Chart1、Chart3 和 Chart5 Charts(Array(Chart1, Chart3, Chart5).Visible = False 46、 當(dāng)激活工作表時(shí),本示例對 A1:A10 區(qū)域進(jìn)行排序 Private Sub Worksheet_Activate() Range(a1:a10).Sort Key1:=Range(a1), Order:=xlAscending End Sub 47、 本示例更改 Microsof
21、t Excel 鏈接 ActiveWorkbook.ChangeLink c:excelbook1.xls, _ c:excelbook2.xls, xlExcelLinks 48、 本示例啟用受保護(hù)的工作表上的自動篩選箭頭? ActiveSheet.EnableAutoFilter = True ActiveSheet.Protect contents:=True, userInterfaceOnly:=True 49、 本示例將活動工作簿設(shè)為只讀? ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly 50、 本示例使共享工作簿每三分鐘自動更新一
22、次? ActiveWorkbook.AutoUpdateFrequency = 3 51、 下述 Sub 過程清除活動工作簿中 Sheet1 上的所有單元格的內(nèi)容 Sub ClearSheet() Worksheets(Sheet1).Cells.ClearContents End Sub 52、 本示例對所有工作簿都關(guān)閉滾動條? Application.DisplayScrollBars = False 53、 如果具有密碼保護(hù)的工作簿的文件屬性沒有加密,則本示例設(shè)置指定工作簿的密碼加密選項(xiàng) Sub SetPasswordOptions() With ActiveWorkbook If .P
23、asswordEncryptionProvider Microsoft RSA SChannel Cryptographic Provider Then .SetPasswordEncryptionOptions _ PasswordEncryptionProvider:=Microsoft RSA SChannel Cryptographic Provider, _ PasswordEncryptionAlgorithm:=RC4, _ PasswordEncryptionKeyLength:=56, _ PasswordEncryptionFileProperties:=True End
24、If End With End Sub 54、 在本示例中,如果活動工作簿不能進(jìn)行寫保護(hù),那么 Microsoft Excel 設(shè)置字符串密碼以作為活動工作簿的寫密碼 Sub UseWritePassword() Dim strPassword As String strPassword = secret Set password to a string if allowed. If ActiveWorkbook.WriteReserved = False Then ActiveWorkbook.WritePassword = strPassword End If End Sub 55、 在本
25、示例中,Microsoft Excel 打開名為 Password.xls 的工作簿,設(shè)置它的密碼,然后關(guān)閉該工作簿本示例假定名為 Password.xls 的文件位于 C: 驅(qū)動器上 Sub UsePassword() Dim wkbOne As Workbook Set wkbOne = Application.Workbooks.Open(C:Password.xls) wkbOne.Password = secret wkbOne.Close 注意 Password 屬性可讀并返回 “*” End Sub 56、 本示例將 Book1.xls 的當(dāng)前窗口更改為顯示公式 Workbook
26、s(BOOK1.XLS).Worksheets(Sheet1).Activate ActiveWindow.DisplayFormulas = True 57、 本示例接受活動工作簿中的所有更改? ActiveWorkbook.AcceptAllChanges 58、 本示例顯示活動工作簿的路徑和名稱 Sub UseCanonical() MsgBox 消息框 b7 = ActiveWorkbook.FullName 當(dāng)前工作簿 b8 = ActiveWorkbook.FullNameURLEncoded 活動工作簿 End Sub 59、 本示例顯示 Microsoft Excel 啟動文件
27、夾的完整路徑 MsgBox Application.StartupPath 60、 本示例顯示活動工作簿中每個(gè)工作表的名稱 For Each ws In Worksheets MsgBox ws.Name Next ws 61、 本示例關(guān)閉除正在運(yùn)行本示例的工作簿以外的其他所有工作簿,并保存其更改內(nèi)容 For Each w In Workbooks If w.Name ThisWorkbook.Name Then w.Close savechanges:=True End If Next w 62、 Activate 事件 激活一個(gè)工作簿、工作表、圖表或嵌入圖表時(shí)產(chǎn)生此事件 當(dāng)激活工作表時(shí),本
28、示例對 A1:A10 區(qū)域進(jìn)行排序 Private Sub Worksheet_Activate() Range(a1:a10).Sort Key1:=Range(a1), Order:=xlAscending End Sub 63、 Calculate 事件 對于 Worksheet 對象,在對工作表進(jìn)行重新計(jì)算之后產(chǎn)生此事件 每當(dāng)工作表重新計(jì)算時(shí),本示例就調(diào)整 A 列到 F 列的寬度 Private Sub Worksheet_Calculate() Columns(A:F).AutoFit End Sub 64、 BeforeDoubleClick 事件 應(yīng)用于 Worksheet 對象
29、的 Activate 方法 當(dāng)雙擊某工作表時(shí)產(chǎn)生此事件,此事件先于默認(rèn)的雙擊操作 Private Sub expression_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) expression 引用在類模塊中帶有事件聲明的 Worksheet 類型對象的變量 Target 必需雙擊發(fā)生時(shí)最靠近鼠標(biāo)指針的單元格 Cancel 可選當(dāng)事件發(fā)生時(shí)為 False如果事件過程將該參數(shù)設(shè)為 True,則該過程執(zhí)行完之后將不進(jìn)行默認(rèn)的雙擊操作 65、 BeforeRightClick 事件 應(yīng)用于 Worksheet 對象的 Act
30、ivate 方法 當(dāng)用鼠標(biāo)右鍵單擊某工作表時(shí)產(chǎn)生此事件,此事件先于默認(rèn)的右鍵單擊操作 Private Sub expression_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) expression 引用在類模塊中帶有事件聲明的 Worksheet 類型對象的變量 Target 必需右鍵單擊發(fā)生時(shí)最靠近鼠標(biāo)指針的單元格 Cancel 可選當(dāng)事件發(fā)生時(shí)為 False如果該事件過程將本參數(shù)設(shè)為 True,則該過程執(zhí)行結(jié)束之后不進(jìn)行默認(rèn)的右鍵單擊操作 66、 Change 事件 當(dāng)用戶更改工作表中的單元格,或外部鏈接引起單元格的
31、更改時(shí)產(chǎn)生此事件 Private Sub Worksheet_Change(ByVal Target As Range) Target 更改的區(qū)域可以是多個(gè)單元格 說明 重新計(jì)算引起的單元格更改不觸發(fā)本事件可使用 Calculate 事件俘獲工作表重新計(jì)算操作 67、 本示例將更改的單元格的顏色設(shè)為藍(lán)色 Private Sub Worksheet_Change(ByVal Target as Range) Target.Font.ColorIndex = 5 End Sub 68、 Deactivate 事件 圖表、工作表或工作簿從活動狀態(tài)轉(zhuǎn)為非活動狀態(tài)時(shí)產(chǎn)生此事件 Private Sub o
32、bject_Deactivate() object Chart、Workbook 或者 Worksheet有關(guān)對 Chart 對象使用事件的詳細(xì)信息,請參閱 Chart 對象事件的用法 69、 本示例當(dāng)工作簿轉(zhuǎn)為非活動狀態(tài)時(shí),對所有打開的窗口進(jìn)行排列 Private Sub Workbook_Deactivate() Application.Windows.Arrange xlArrangeStyleTiled End Sub 70、 FollowHyperlink 事件 當(dāng)單擊工作表上的任意超鏈接時(shí),發(fā)生此事件對于應(yīng)用程序級或工作簿級的事件,請參閱 SheetFollowHyperlink
33、事件 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Target Hyperlink 類型,必需一個(gè)代表超鏈接目標(biāo)位置的 Hyperlink 對象 71、 本示例對在當(dāng)前活動工作簿中訪問過的所有鏈接保留一個(gè)列表或歷史記錄 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) With UserForm1 .ListBox1.AddItem Target.Address .Show End With End Sub 72、 PivotTa
34、bleUpdate 事件 發(fā)生在工作簿中的數(shù)據(jù)透視表更新之后 Private Sub expression_PivotTableUpdate(ByVal Target As PivotTable) expression 引用在類模塊中帶有事件聲明的 Worksheet 類型對象的變量 Target 必需選定的數(shù)據(jù)透視表 73、 本示例顯示一則消息,說明數(shù)據(jù)透視表已經(jīng)更新本示例假定您已在類模塊中聲明了帶有事件的 Worksheet 類型的對象 Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable) MsgBox The
35、 PivotTable connection has been updated. End Sub 74、 SelectionChange 事件 當(dāng)工作表上的選定區(qū)域發(fā)生改變時(shí),將產(chǎn)生本事件 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Target 新選定的區(qū)域 75、 本示例滾動工作簿窗口,直至選定區(qū)域位于窗口的左上角 Private Sub Worksheet_SelectionChange(ByVal Target As Range) With ActiveWindow .ScrollRow = Ta
36、rget.Row .ScrollColumn = Target.Column End With End Sub 76、 本示例顯示活動工作簿中工作表 sheet1 上單元格 A1 中的值 MsgBox Worksheets(Sheet1).Range(A1).Value 77、 本示例顯示活動工作簿中每個(gè)工作表的名稱 For Each ws In Worksheets MsgBox ws.Name Next ws 78、 本示例向活動工作簿添加新工作表,并設(shè)置該工作表的名稱 Set newSheet = Worksheets.Add newSheet.Name = current Budget
37、 79、 本示例關(guān)閉工作簿 Book1.xls,但不提示用戶保存所作更改Book1.xls 中的所有更改都不會保存 Application.DisplayAlerts = False Workbooks(BOOK1.XLS).Close Application.DisplayAlerts = True 80、 本示例設(shè)置保存文件時(shí)顯示提示,要求用戶輸入?yún)R總信息 Application.PromptForSummaryInfo = True 81、 本示例顯示 Microsoft Excel 的完整路徑 Private Sub aa() MsgBox The path is & Applicat
38、ion.Path End Sub 82、 示例顯示每一個(gè)可用加載宏的路徑及文件名 For Each a In AddIns MsgBox a.FullName Next a ChDir 語句 83、 改變當(dāng)前的目錄或文件夾 ChDir path 在 Power Macintosh 中,默認(rèn)驅(qū)動器總是改為在 path 語句中指定的驅(qū)動器完整路徑指定由卷標(biāo)名開始,相對路徑由冒號 (:) 開始. ChDir 可以辨認(rèn)路徑中指定的別名: ChDir MacDrive:Tmp 在 Macintosh 中 84、 本示例顯示當(dāng)前路徑分隔符 MsgBox The path separator charact
39、er is & _ Application.PathSeparator 85、 Move 方法 將一個(gè)指定的文件或文件夾從一個(gè)地方移動到另一個(gè)地方 語法 object.Move destination Move 方法語法有如下幾部分: 部分 描述 object 必需的始終是一個(gè) File 或 Folder 對象的名字 destination 必需的文件或文件夾要移動到的目標(biāo)不允許有通配符 86、 CreateFolder 方法 創(chuàng)建一個(gè)文件夾 語法 object.CreateFolder(foldername) reateFolder 方法有如下幾部分: 部分 描述 object 必需的始終是
40、一個(gè) FileSystemObject 的名字 foldername 必需的字符串表達(dá)式,它標(biāo)識創(chuàng)建的文件夾 87、 本示例使用 MkDir 語句來創(chuàng)建目錄或文件夾如果沒有指定驅(qū)動器,新目錄或文件夾將會建在當(dāng)前驅(qū)動器中 MkDir MYDIR 建立新的目錄或文件夾 88、 Name 語句示例 本示例使用 Name 語句來更改文件的名稱示例中假設(shè)所有使用到的目錄或文件夾都已存在 在 Macintosh 中,默認(rèn)驅(qū)動器名稱是 “HD” 并且路徑部分由冒號取代反斜線隔開 Dim OldName, NewName OldName = OLDFILE: NewName = NEWFILE 定義文件名 N
41、ame OldName As NewName 更改文件名 OldName = C:MYDIROLDFILE: NewName = C:YOURDIRNEWFILE Name OldName As NewName 更改文件名,并移動文件 89、 本示例顯示當(dāng)前默認(rèn)文件路徑 MsgBox The current default file path is & _ Application.DefaultFilePath 90、 本示例設(shè)置替換啟動文件夾 Application.AltStartupPath = C:EXCELMACROS FolderExists 方法 91、 如果指定的文件夾存在返回
42、 True,不存在返回 False 語法 object.FolderExists(folderspec) 92、 本示例在單元格中啟用編輯 Application.EditDirectlyInCell = True VBA 入門課程 /excel/topic.htm Advanced Office 2000 Password Recovery 破解VBA的程序 我學(xué)VBA時(shí)的兩本書!excle2000vba開發(fā)實(shí)例指南晶辰工作室 excle2002函數(shù)應(yīng)用秘笈中國鐵路出版社 程序說明: 93、 幾種用VBA在單元格輸入數(shù)據(jù)的方法: Public Su
43、b Writes() 1- 2 方法,最簡單在 中輸入單元格名稱 1 A1 = 100 在 A1 單元格輸入100 2 A2:A4 = 10 在 A2:A4 單元格輸入10 3- 4 方法,采用 Range( ), 中輸入單元格名稱 3 Range(B1) = 200 在 B1 單元格輸入200 4 Range(C1:C3) = 300 在 C1:C3 單元格輸入300 5- 6 方法,采用 Cells(Row,Column),Row是單元格行數(shù),Column是單元格欄數(shù) 5 Cells(1, 4) = 400 在 D1 單元格輸入400 6 Range(Cells(1, 5), Cells(
44、5, 5) = 50 在 E1:E 5單元格輸入50 End Sub 94、 你點(diǎn)選任何單元格,按 Selection 按鈕,則所點(diǎn)選的單元格均會被輸入文字 Test Public Sub Selection1() Selection.Value = Test 在任何你點(diǎn)選的單元格輸入文字 Test End Sub 95、 幾種如何把別的工作表 Sheet4 數(shù)據(jù),讀到這個(gè)工作表的方法:在被讀取的單元格前加上工作表名稱 Sheet4 Public Sub Writes() 1- 2 方法,最簡單在被讀取的 前加上被讀取的工作表名稱 Sheet4 1 A1 = Sheet4.A1 把Sheet4
45、 A1 單元格的數(shù)據(jù),讀到 A1單元格 2 A2:A4 = Sheet4.B1 把 Shee4 工作表單元格 B1 數(shù)據(jù),讀到 A2:A4 單元格 3- 4 方法,在被讀取的工作表 Range( )的 Range 前加上被讀取的工作表名稱Sheet4 3 Range(B1) = Sheet4.Range(B1) 把 Shee4工作表單元格 B1 數(shù)據(jù),讀到 B1 單元格 4 Range(C1:C3) = Sheet4.Range(C1) 把 Shee4 工作表單元格 C1 數(shù)據(jù),讀到 C1:C3 單元格 5- 6 方法,在被讀取的工作表 Cells(Row,Column),Cells 前加上被
46、讀取工作表名稱 Sheet4 5 Cells(1, 4) = Sheet4.Cells(1, 4) 把 Shee4 工作表單元格 D1 數(shù)據(jù),讀到 D1 單元格 6 Range(Cells(1, 5), Cells(5, 5) = Sheet4.Cells(1, 5) 把 Shee4 工作表單元格 E1 數(shù)據(jù),讀到 E1:E 5單元格 End Sub 96、 你點(diǎn)選任何單元格,按 Selection 按鈕,則所點(diǎn)選的單元格均會被輸入 Shee4 工作表單元格 F1 數(shù)據(jù) Public Sub Selection1() Selection.Value = Sheet4.F1 把 Shee4 工作
47、表單元格 F1 數(shù)據(jù),讀到任何你點(diǎn)選的單元格 End Sub 97、 如何利用 Worksheet_SelectionChange 輸入數(shù)據(jù)的方法 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Target = 100 End Sub Target 指的是你鼠標(biāo)所選的單元格,Worksheet_SelectionChange() 事件的參數(shù) 可以是一個(gè)也可以是好幾個(gè)單元格 Range 是 Excel 特有的變量形態(tài),叫范圍 Target As Rang 是把 Target 這個(gè)參數(shù)設(shè)定為 Range 變量形態(tài) Targ
48、et = 100 是把你點(diǎn)選的單元格輸入數(shù)字100 98、 如何利用 Worksheet_SelectionChange 在限定的單元格輸入數(shù)據(jù)的方法 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row = 2 And Target.Column = 2 Then Target = 100 End If End Sub If . Then . End If 這是我們學(xué)的這一個(gè)邏輯判斷語句 Target.Row = 2,指的是鼠標(biāo)選定的單元格的行大于或等于 2 Target.Column = 2 ,
49、指的是鼠標(biāo)選定的單元格的欄等于 2 If Target.Row = 2 And Target.Column = 2 Then 指的是只有在Target.Row = 2及Target.Column = 2二個(gè)條件成立時(shí) 就是 (Target.Row = 2) 為True及(Target.Column = 2)為True時(shí),才執(zhí)行下面的程序 Target=100, 也就是 B 欄第二行及以下行用鼠標(biāo)被點(diǎn)選時(shí),才會被輸入100,其它單元格則不被輸入數(shù)據(jù) 99、 比較 Worksheet_SelectionChange() 與用按鈕 CommandButton1_Click() 來執(zhí)行程序二者的方法與
50、寫法有何不同 Worksheet_SelectionChange()事件 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row = 2 And Target.Column = 2 Then Target = 100 End If End Sub 按鈕CommandButton1_Click() Private Sub CommandButton1_Click() If ActiveCell.Row = 2 And ActiveCell.Column = 3 Then ActiveCell = 100
51、 End If End Sub 二者執(zhí)行方法最大的地方,在于 Worksheet_SelectionChange() 是自動的,你不用了解他是怎么完成工作的 按鈕 CommandButton1_Click() 是人工的,比 SelectionChange()多一道手續(xù),就是要去按那接鈕,程序才會執(zhí)行 SelectionChange() 有一個(gè)參數(shù) Target 可用;CommandButton1_Click ()沒有 所以我們要用 ActiveCell 內(nèi)定函數(shù)來取代Target,ActiveCell 與 Target最大的不同點(diǎn)他只能指定一個(gè)單元格 就是你選取多個(gè)單元格也只有最上面的單元格會
52、加上數(shù)據(jù);用 Selection 取代 ActiveCell, 用法就跟 Target 一樣了 100、 完整的 If.Then End 邏輯判斷式 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row = 2 And Target.Column = 2 Then Target = 200 ElseIf Target.Row = 2 And Target.Column = 3 Then Target = 300 ElseIf Target.Row = 2 And Target.Column = 2
53、Then Target = 400 Else Target = 500 End If End Sub 這是個(gè)完整的 If 邏輯判斷式,意思是說,假如 If 後的判斷式條件成立的話,就執(zhí)行第二條程序,否則假如 ElseIf 後的判斷式條件成立的話,就執(zhí)行第四條程序,否則假如另一個(gè) ElseIf 後的判斷式條件成立的話,就執(zhí)行第六條程序 Else 的意思是說,假如以上條件都不成立的話,就執(zhí)行第八條程序 他的執(zhí)行方式是假如 IF 的條件成立的話,就不執(zhí)行其它ElseIf 及Else 的邏輯判斷式,假如 If 後的條件不成立的話才會執(zhí)行 ElseIf 或 Else 邏輯判斷式第二個(gè) ElseIf後的條
54、件因?yàn)榕c IF 後的條件一樣,所以這個(gè)判斷式後面的 Target=400 將是永遠(yuǎn)無法執(zhí)行到的程序 101、 我們?yōu)槭颤N要用變數(shù) Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim i , j As Integer Dim k As Range i = Target.Row j = Target.Column Set k = Target If i = 2 And j = 2 Then k = 200 ElseIf i = 2 And j = 3 Then k = 300 ElseIf i = 2 And j = 4
55、 Then k = 400 Else k = 500 End If End Sub 跟VBALesson 6比較,程序是不是明朗多了,在前課重復(fù)的用 Target.Row,Target.Column及Target來寫程序是不是有一點(diǎn)煩用變量的第一個(gè)好處大家馬上感覺得出來,就是可以簡化程序 使用變量前,你得先宣告變量宣告變量的方法是在 Dim 后面寫上變量 i As 后面接上變量的形態(tài) Integer Dim i , j As Integer 就是宣告 i 與 j 為整數(shù)變量,這是同時(shí)宣告二個(gè)變量 i 與 j 所以要在二個(gè)變量間加個(gè) , 號 Dim k As Range 是宣告 k 為范圍資料形態(tài),Range這是 Excel 特有的資料形態(tài) i = Target.Row是把當(dāng)前單元格的行數(shù),指定給變量 i j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版美容院美容院品牌保護(hù)與侵權(quán)處理協(xié)議4篇
- 2025版協(xié)議離婚詳細(xì)流程與婚姻調(diào)解服務(wù)合同3篇
- 二零二五年度購房合同書樣本:智能家居配置3篇
- 二零二五版苗木種植基地病蟲害防治合作協(xié)議樣本4篇
- 2025年度醫(yī)療設(shè)施租賃合同合法經(jīng)營保障醫(yī)療服務(wù)質(zhì)量4篇
- 2025年度美容院美容院消防安全檢查與整改合同4篇
- 二零二五版智能電網(wǎng)建設(shè)項(xiàng)目施工協(xié)議3篇
- 浙江中醫(yī)藥大學(xué)《導(dǎo)游服務(wù)英語》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025版汽車專用輪胎批發(fā)代理合作協(xié)議范本4篇
- 租賃合同(二零二五年度):魚池場地租賃、養(yǎng)殖技術(shù)指導(dǎo)及分成6篇
- 四川省成都市武侯區(qū)2023-2024學(xué)年九年級上學(xué)期期末考試化學(xué)試題
- 初一到初三英語單詞表2182個(gè)帶音標(biāo)打印版
- 2024年秋季人教版七年級上冊生物全冊教學(xué)課件(2024年秋季新版教材)
- 2024年共青團(tuán)入團(tuán)積極分子考試題庫(含答案)
- 碎屑巖油藏注水水質(zhì)指標(biāo)及分析方法
- 【S洲際酒店婚禮策劃方案設(shè)計(jì)6800字(論文)】
- 鐵路項(xiàng)目征地拆遷工作體會課件
- 醫(yī)院死亡報(bào)告年終分析報(bào)告
- 中國教育史(第四版)全套教學(xué)課件
- 2023年11月英語二級筆譯真題及答案(筆譯實(shí)務(wù))
- 上海民辦楊浦實(shí)驗(yàn)學(xué)校初一新生分班(摸底)語文考試模擬試卷(10套試卷帶答案解析)
評論
0/150
提交評論