轉:經典Excel VBA代碼

來源:互聯網
上載者:User

 

 VBA基礎在大家的關注聲中即將告一段落了,有許多經典的VBA操作我們只是作了簡要的介紹,想要熟練地使用VBA還需要大家慢慢地去消化和吸收,然後在實踐中總結和提高。最後我們收集了常見的VBA代碼以饗廣大的讀者,希望對大家有所啟示。

Application(Excel程式)篇

Application.EnableEvents= True/ False ’啟用/禁用所有事件

Application.DisplayAlerts=True/False ’顯示/關閉警告框提示框

Application.ScreenUpdating= True/False ’顯示/關閉螢幕重新整理

Application.StatusBar = "軟體報專用"  ’在地址欄中顯示文本,標題列用Caption屬性

Application.Cursor = xlIBeam  ‘設定游標形狀為Ⅰ字形,xlWait為沙漏(等待)形,xlNormal為正常

Application.WindowState = xlMinimized ‘視窗最小化,xlMaximized最大化,xlNormal為正常

Application.ActivateMicrosoftApp xlMicrosoftWord ’開啟Word應用程式

Application.TemplatesPath ‘擷取活頁簿模板的位置

Application.CalculateFull ’重新計算所有開啟的活頁簿中的資料

Application.RecentFiles.Maximum = 2 ’將最近使用的文檔列表數設為2

Application.RecentFiles(3).Open ’開啟最近開啟的文檔中的第3個文檔

Application.AutoCorrect.AddReplacement "sweek", "軟體報"   ’自動將輸入的"sweek"更正為"軟體報"

Application.Dialogs(xlDialogPrint).Show ‘顯示列印文檔的對話方塊

Application.OnTime Now + TimeValue("00:00:45"), "process" ’45分鐘後執行指定過程

Application.OnTime TimeValue("14:00:00"), " process "  ’下午2點執行指定過程

Application.OnTime EarliestTime:=TimeValue("14:00:00"), _

Procedure:="process", Schedule:=False   ’取消指定時間的過程的執行

活頁簿/工作表篇

ActiveWorkbook.Sheets.Count ’擷取活動工作薄中工作表數

ActiveWorkbook.LinkSources(xlExcelLinks)(1) ‘返回當前活頁簿中的第一條連結

ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetHidden ‘隱藏工作表,與在Excel菜單中執行“格式—工作表—隱藏”操作一樣

ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVeryHidden ‘隱藏工作表,不能通過在Excel菜單中執行“格式—工作表—取消隱藏”來重新顯示工作表

ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVisible ‘顯示被隱藏的工作表

ThisWorkbook.Sheets(1).ProtectContents ‘檢查工作表是否受到保護

ActiveSheet.Columns("B").Cut

ActiveSheet.Columns("F").Insert ‘以上兩句將B列資料移至F列,原C列後的資料左移

ActiveSheet.Range(“A:A”).EntireColumn.AutoFit ‘自動調整當前工作表A列的列寬

ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) ‘選中當前工作表中常量和文本儲存格

ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) ‘選中當前工作表中常量和文本及錯誤值儲存格

ActiveSheet.UsedRange.Rows.Count ‘當前工作表中已使用的行數

ThisWorkbook.Worksheets.Add ThisWorkbook.Worksheets(3), , 2  ‘在第3張工作表之前添加2個新的工作表

ActiveSheet.Move After:=ActiveWorkbook. _

Sheets(ActiveWorkbook.Sheets.Count) ’將當前工作表移至工作表的最後

Worksheets(Array(“sheet1”,”sheet2”)).Select ’同時選擇工作表sheet1和sheet2

ActiveSheet.UsedRange.FormatConditions.Delete ‘刪除當前工作表中應用的條件式格式設定

Cells.Hyperlinks.Delete ‘取消當前工作表中所有儲存格的超連結

ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在頁尾顯示檔案的路徑

ActiveSheet.PrintPreview Enablechanges:=False ‘禁用顯示在Excel的“預覽列印”視窗中的“設定”和“頁面邊界”按鈕

儲存格/儲存格範圍篇

ActiveSheet.UsedRange.Row ‘擷取已使用的儲存格範圍的第一行的行號

Range(“A65536”).End(xlUp).Row ‘返回A列最後一行(即記錄的總條數)

cell.Range(“A1”).HasFormula ‘檢查儲存格或儲存格範圍中的第一個儲存格是否含有公式或cell.HasFormula ‘工作表中儲存格是否含有公式

Target.EntireColumn.Select ‘選擇儲存格所在的整個列,Target.EntireRow.Select為選擇儲存格所在的整行

ActiveCell.Row ‘作用儲存格所在的行號,ActiveCell.Column為作用儲存格所在的列數

ActiveWindow.ScrollRow = 2 ’將當前工作表視窗滾動到第2行

ActiveWindow.ScrollColumn = 5 ’將當前工作表視窗滾動到第5列

Worksheets("sheet1").Range("A1:C5").CopyPicture xlScreen, xlBitmap ’將指定的儲存格範圍的內容複寫成螢幕快照

Selection.Hyperlinks.Delete ‘刪除所選地區的所有連結

ActiveSheet.Cells(1, 1).Font.Bold = TRUE ‘Bold屬性用於設定字型是否為加粗, Size屬性設定字型大小, ColorIndex屬性設定字型顏色(其值為色彩索引號), Italic屬性設定字型是否為傾斜, Name屬性設定字型名稱

ActiveSheet.Cells(1, 1).Interior.ColorIndex = 3 ‘將儲存格的背景色設定為紅色

IsEmpty (ActiveCell.Value) ’判斷作用儲存格中是否有值

ActiveCell.Value = UCase(ActiveCell.Value) ’將目前的儲存格中的字元轉換成大寫

ActiveCell.Value = StrConv(ActiveCell.Value, vbLowerCase) ’將作用儲存格中的字串轉換成小寫

ActiveCell.CurrentRegion.Select ’選擇當前作用儲存格所在的連續的非空地區,也可以用Range(ActiveCell, UsedRange.End(xlDown)).Select

ActiveCell.Offset(1,0).Select ’作用儲存格下移一行

Range(“B2”).Offset(ColumnOffset:=1)或Range(“B2”).Offset(,1) ‘讀取指定儲存格右側儲存格中的資料

Range(“B2”).Offset(Rowoffset:=-1)或Range(“B2”).Offset(-1) ‘讀取指定儲存格上一行儲存格中的資料

Range(“A1”).Copy Range(“B1”) ’複製儲存格A1中的內容到B1中

Range(“A1:D8”).Copy Range(“H1”) ’將指定儲存格範圍複製到從H1開始的地區中,用Cut方法可以實現剪下操作

ActiveWindow.RangeSelection.Value = "軟體報" ’將指定字串輸入到所選儲存格範圍中

表單(控制項)篇

Option Explicit ’強制對模組內所有變數進行聲明

Userform1.Show ‘顯示使用者表單

Load Userform1 ‘載入一個使用者表單,但該表單處於隱藏狀態

Userform1.Hide ‘隱藏使用者表單

Unload Userform1 或 Unload Me ‘卸載使用者表單

Me.Height=Int(0.5 * ActiveWindow.Height) ‘表單高度為當前使用中視窗高度的一半,寬度用ActiveWindow. Width屬性

UserForm1.ComboBox1.AddItem Sheets("Sheet1").Cells(1, 1) ‘將指定儲存格中的資料添加到複合框中

ListBox1.List=MyProduct() ‘將數組MyProduct的值添加到列表框ListBox1中

ListBox1.RowSource=”Sheet1!isum” ‘將工作表Sheet1中名為的isum地區的值添加到列表框中

ListBox1.Selected(0) ‘選中列表框中的指定的條目

ListBox1.RemoveItem ListBox1.ListIndex ‘移除列表框中選中的條目

If MsgBox(“要退出嗎?”,vbYesNo)<>vbYes Then Exit Sub ’傳回值不為“是”,則退出

Config=vbYesNo+vbQuestion+vbDefaultButton2 ’使用常量的組合,賦值組Config變數,並設定第二個按鈕為預設按鈕 

MsgBox “This is the first line.” & vbNewLine & “Second line.” ’在訊息框中強制換行,也可用vbCrLf代替vbNewLine。

MsgBox "平均值為:"&Format(Application.WorksheetFunction.Average(Selection),"#,##0.00"),vbInformation, "顯示選區平均值" ’應用工作表函數返回所選地區的平均值並按指定顯示的格式

公式與函數

Application.WorksheetFunction.IsNumber(“A1”) ’檢查指定儲存格中的資料是否為數字

Range(“A:A”).Find(Application.WorksheetFunction.Max(Range(“A:A”))).Activate 

’啟用儲存格範圍A列中最大值的儲存格

Application.MacroOptions Macro:=”GetSum”,Category:=4 ‘將自訂的GetSum函數指定給Excel中的“統計函數”類別

Application.MacroOptions Macro:=” GetSum”, _

Description:=”先求和,然後再輸出。” ‘為自訂函數GetSum進行功能說明

Application.WorksheetFunction.CountA(Cell.EntireColumn) ‘返回該儲存格所在列非空儲存格的數量,所在行使用EntireRow屬性

Application.WorksheetFunction.CountA(Cells) ‘返回當前工作表中非空儲存格數量

圖表篇

ActiveSheet.ChartObjects.Delete ‘刪除工作表中所有的ChartObject對象

ActiveWorkbook.Charts.Delete ‘刪除當前活頁簿中所有的圖表工作表 ActiveSheet.ChartObjects.Count ’擷取當前工作表中圖表的個數

Worksheets("Sheet1").ChartObjects(1).Chart. _

Export Filename:="C:/MyChart.gif", FilterName:="GIF" ‘將指定工作表中的圖表1匯出到C盤上並命名為MyChart.gif 

以上代碼均經過我們的測試,大家可放心地使用並在此基礎上加以歸納和提煉。如果你也有VBA使用的心得不妨寫下來和大家一起來分享。{
function onclick()
{
DiggIt(845212,21145,1)
}
}">0 {
function onclick()
{
DiggIt(845212,21145,2)
}
}">0

0

(請您對文章做出評價)
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.