2012年8月13日 星期一

Excel VBA 使用函數範例參考之一

本示例爲設置工作表密碼
  ActiveSheet.Protect Password:=641112 ' 保護工作表並設置密碼
  ActiveSheet.Unprotect Password:=641112 '撤銷工作表保護並取消密碼
  '本示例保存當前活動工作簿的副本。
  ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS"
  '本示例通過將 Saved 屬性設爲 True 來關閉包含本段代碼的工作簿,並放棄對該
  工作簿的任何更改。
  ThisWorkbook.Saved = True
  ThisWorkbook.Close
  '本示例對自動重新計算功能進行設置,使 Microsoft Excel 不對第一張工作表自
  動進行重新計算。
  Worksheets(1).EnableCalculation = False
  '下述過程打開 C 盤上名爲 MyFolder 的文件夾中的 MyBook.xls 工作簿。
  Workbooks.Open ("C:\MyFolder\MyBook.xls")
  '本示例顯示活動工作簿中工作表 sheet1 上單元格 A1 中的值。
  MsgBox Worksheets("Sheet1").Range("A1").Value
  本示例顯示活動工作簿中每個工作表的名稱
  For Each ws In Worksheets
  MsgBox ws.Name
  Next ws
  本示例向活動工作簿添加新工作表 , 並設置該工作表的名稱?
  Set NewSheet = Worksheets.Add
  NewSheet.Name = "current Budget"
  本示例將新建的工作表移到工作簿的末尾
  'Private Sub Workbook_NewSheet(ByVal Sh As Object)
  Sh.Move After:=Sheets(Sheets.Count)
  End Sub
  本示例將新建工作表移到工作簿的末尾
  'Private Sub App_WorkbookNewSheet(ByVal Wb As Workbook, _
  ByVal Sh As Object)
  Sh.Move After:=Wb.Sheets(Wb.Sheets.Count)
  End Sub
  本示例新建一張工作表,然後在第一列中列出活動工作簿中的所有工作表的名稱。
  Set NewSheet = Sheets.Add(Type:=xlWorksheet)
  For i = 1 To Sheets.Count
  NewSheet.Cells(i, 1).Value = Sheets(i).Name
  Next i
  本示例將第十行移到窗口的最上面?
  Worksheets("Sheet1").Activate
  ActiveWindow.ScrollRow = 10
  當計算工作簿中的任何工作表時,本示例對第一張工作表的 A1:A100 區域進行排序
  。
  'Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
  With Worksheets(1)
  .Range("a1:a100").Sort Key1:=.Range("a1")
  End With
  End Sub
  本示例顯示工作表 Sheet1 的列印預覽。
  Worksheets("Sheet1").PrintPreview
  本示例保存當前活動工作簿?
  ActiveWorkbook.Save
  本示例保存所有打開的工作簿,然後關閉 Microsoft Excel。
  For Each w In Application.Workbooks
  w.Save
  Next w
  Application.Quit
  下例在活動工作簿的第一張工作表前面添加兩張新的工作表?
  Worksheets.Add Count:=2, Before:=Sheets(1)
  本示例設置 15 秒後運行 my_Procedure 過程,從現在開始計時。
  Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
  本示例設置 my_Procedure 在下午 5 點開始運行。
  Application.OnTime TimeValue("17:00:00"), "my_Procedure"
  本示例撤銷前一個示例對 OnTime 的設置。
  Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
  Procedure:="my_Procedure", Schedule:=False
  每當工作表重新計算時,本示例就調整 A 列到 F 列的寬度。
  'Private Sub Worksheet_Calculate()
  Columns("A:F").AutoFit
  End Sub
  本示例使活動工作簿中的計算僅使用顯示的數字精度。
  ActiveWorkbook.PrecisionAsDisplayed = True
  本示例將工作表 Sheet1 上的 A1:G37 區域剪下,並放入剪貼板。
  Worksheets("Sheet1").Range("A1:G37").Cut
  Calculate 方法
  計算所有打開的工作簿、工作簿中的一張特定的工作表或者工作表中指定區域的單元
  格,如下表所示:
  '要計算 '依照本示例
  所有打開的工作簿 ' Application.Calculate (或只是 Calculate
  )
  指定工作表 '計算指定工作表Sheet1 Worksheets
  ("Sheet1").Calculate
  指定區域 'Worksheets(1).Rows(2).Calculate
  本示例對自動重新計算功能進行設置,使 Microsoft Excel 不對第一張工作表自動
  進行重新計算。
  Worksheets(1).EnableCalculation = False
  本示例計算 Sheet1 已用區域中 A 列、B 列和 C 列的公式。
  Worksheets("Sheet1").UsedRange.Columns("A:C").Calculate
  本示例更新當前活動工作簿中的所有鏈接?
  ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
  本示例設置第一張工作表的滾動區域?
  Worksheets(1).ScrollArea = "a1:f10"
  本示例新建一個工作簿,提示用戶輸入檔案名,然後保存該工作簿。
  Set NewBook = Workbooks.Add
  Do
  fName = Application.GetSaveAsFilename
  Loop Until fName False
  NewBook.SaveAs Filename:=fName
  本示例打開 Analysis.xls 工作簿,然後運行 Auto_Open 宏。
  Workbooks.Open "ANALYSIS.XLS"
  ActiveWorkbook.RunAutoMacros xlAutoOpen
  本示例對活動工作簿運行 Auto_Close 宏,然後關閉該工作簿。
  With ActiveWorkbook
  .RunAutoMacros xlAutoClose
  .Close
  End With
  在本示例中,Microsoft Excel 向用戶顯示活動工作簿的路徑和檔案名稱。
  'Sub UseCanonical()
  Display the full path to user.
  MsgBox ActiveWorkbook.FullNameURLEncoded
  End Sub
  本示例顯示當前工作簿的路徑及檔案名(假定尚未保存此工作簿)。
  MsgBox ActiveWorkbook.FullName
  本示例關閉 Book1.xls,並放棄所有對此工作簿的更改。
  Workbooks("BOOK1.XLS").Close SaveChanges:=False
  本示例關閉所有打開的工作簿。如果某個打開的工作簿有改變,Microsoft Excel
  將顯示詢問是否保存更改的對話框和相應提示。
  Workbooks.Close
  本示例在列印之前對當前活動工作簿的所有工作表重新計算?
  'Private Sub Workbook_BeforePrint(Cancel As Boolean)
  For Each wk In Worksheets
  wk.Calculate
  Next
  End Sub
  本示例對查詢表一中的第一列數據進行彙總,並在數據區域下方顯示第一列數據的總
  和。
  Set c1 = Sheets("sheet1").QueryTables(1).ResultRange.Columns(1)
  c1.Name = "Column1"
  c1.End(xlDown).Offset(2, 0).Formula = "=sum(Column1)"
  本示例取消活動工作簿中的所有更改?
  ActiveWorkbook.RejectAllChanges
  本示例在商業問題中使用規劃求解函數,以使總利潤達到最大值。SolverSave 函數
  將當前問題保存到活動工作表上的某一區域。
  Worksheets("Sheet1").Activate
  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"), _
  Relation:=4
  SolverSolve UserFinish:=False
  SolverSave SaveArea:=Range("A33")
  本示例隱藏 Chart1、Chart3 和 Chart5。
  Charts(Array("Chart1", "Chart3", "Chart5")).Visible = False
  當啟動工作表時,本示例對 A1:A10 區域進行排序。
  'Private Sub Worksheet_Activate()
  Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending
  End Sub
  本示例更改 Microsoft Excel 鏈接。
  ActiveWorkbook.ChangeLink "c:\excel\book1.xls", _
  "c:\excel\book2.xls", xlExcelLinks
  本示例啓用受保護的工作表上的自動篩選箭頭?
  ActiveSheet.EnableAutoFilter = True
  ActiveSheet.Protect contents:=True, userInterfaceOnly:=True
  本示例將活動工作簿設爲只讀?
  ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
  本示例使共用活頁簿每三分鍾自動更新一次?
  ActiveWorkbook.AutoUpdateFrequency = 3
  下述 Sub 過程清除活動工作簿中 Sheet1 上的所有單元格的內容。
  'Sub ClearSheet()
  Worksheets("Sheet1").Cells.ClearContents
  End Sub
  本示例對所有工作簿都關閉滾動條?
  Application.DisplayScrollBars = False
  如果具有密碼保護的工作簿的檔屬性沒有加密,則本示例設置指定工作簿的密碼加
  密選項。
  'Sub SetPasswordOptions()
  With ActiveWorkbook
  If .PasswordEncryptionProvider "Microsoft RSA SChannel
  Cryptographic Provider" Then
  .SetPasswordEncryptionOptions _
  PasswordEncryptionProvider:="Microsoft RSA SChannel
  Cryptographic Provider", _
  PasswordEncryptionAlgorithm:="RC4", _
  PasswordEncryptionKeyLength:=56, _
  PasswordEncryptionFileProperties:=True
  End If
  End With
  End Sub


相關閱讀...
Excel VBA 使用函數範例參考之二
Excel VBA 使用函數範例參考之三
Excel VBA 使用函數範例參考之四
Excel VBA 使用函數範例參考之五
Excel VBA 使用函數範例參考之六

沒有留言:

張貼留言