【訪問工作簿】
對已經打開的工作簿,可以通過使用索引號來訪問工作簿,也可以通過名稱來訪問工作簿
【代碼區域】
Sub 訪問工作簿() Dim counter As Integer counter = Workbooks.Count Debug.Print Debug.Print "當前打開工作簿的數目為:" & CStr(counter) Debug.Print "按索引號訪問工作簿如下:" Debug.Print "第一個工作簿是:" & Workbooks(1).name Debug.Print "第一個工作簿是:" & Workbooks(2).name Debug.Print "按名稱訪問工作簿如下:" Debug.Print "第一個工作簿是:" & Workbooks("VBA.xlsm").name Debug.Print "第一個工作簿是:" & Workbooks("TEST.xlsx").name End Sub
【打印結果】
現在打開的工作簿為:


【獲取工作簿信息】
【代碼區域】
Sub 獲取工作簿信息() Dim wb As Workbook Set wk = Workbooks(1) wk.Activate Debug.Print Debug.Print "當前Excle文檔的信息如下:" Debug.Print "工作簿的名稱為:" & wk.name Debug.Print "工作簿的保存位置為:" & wk.Path Debug.Print "工作簿是否只讀:" & CStr(wk.ReadOnly) Debug.Print "工作簿的全名為:" & wk.FullName Debug.Print "工作簿是否需要密碼:" & wk.HasPassword End Sub
【結果展示】

【新建工作簿】
【代碼區域】
Sub 新建工作簿() Dim wb As Workbook Dim wk As Worksheet Rem 設置初始化工作簿中默認的工作表數目 Application.SheetsInNewWorkbook = 2 Set wb = Workbooks.Add '新建工作簿 Set ws = wb.Sheets(1) ws.name = "產品" Set ws = wb.Sheets(2) ws.name = "原料" Rem 恢復初始工作簿中默認的工作表 Application.SheetsInNewWorkbook = 3 MsgBox "成功完成了新建工作簿!", vbOKOnly, "新建工作簿" Set wb = Nothing Set ws = Nothing End Sub
【結果展示】


【使用對話框打開工作簿】
【代碼區域】
Sub 使用對話框打開工作簿() Dim fileInformation As String fileInformation = Application.GetOpenFilename("Excle 工作簿(*.xlsx),*.xlsx") End Sub
【結果展示】

【備份工作簿】
【代碼區域】
Sub 備份工作簿() Dim wk As Workbook Dim mypath As String Dim myfile As String Dim filefull As String Set wk = Workbooks(1) wk.Activate mypath = wk.Path myfile = "備份" + wk.name filefull = mypath + "\" + myfile wk.SaveCopyAs filefull 'vbLf 換行 MsgBox "備份成功!" & vbLf & "備份文件於" & mypath & "\" & & myfile & vbLf & "備份文件的全名為:" & filefull, vbOKOnly, "備份工作簿" Set wk = Nothing End Sub
【效果展示】
【使用保存對話框保存工作簿】
【代碼區域】
Sub 使用保存對話框來保存文件() Dim wk As Workbook Dim fileinfo As String Set wk = Workbooks(1) wk.Activate fileinfo = Application.GetSaveAsFilename(exclefile, "Excle 工作簿(*.xlsm),*.xlsx") If fileinfo = "False" Then MsgBox "請輸入工作簿名字", vbOKOnly, "保存工作簿" Exit Sub End If wk.SaveAs Filename:=fileinfo Set wk = Nothing End Sub
【效果展示】


【設置工作簿窗口大小】
【代碼區域】
Sub 設置工作簿窗口大小() Dim win As Window Dim windate As Long Dim winwidth As Long Dim winheight As Double Set win = Application.ActiveWindow win.Activate With win winstate = .WindowState winwidth = .Width winheight = .Height '設置窗口狀態 .WindowState = xlNormal .Width = 600 .Height = 300 MsgBox "設置窗口大小之前:" & vbLf & "窗口狀態為:" & CStr(winstate) & vbLf & "窗口寬度為:" & CStr(winwidth) & vbLf & "窗口高度為:" & CStr(winheight) & vbLf & "設置窗口大小之后:" & vbLf & "窗口狀態為:" & CStr(.WindowState) & vbLf & "窗口寬度為:" & CStr(.Width) & vbLf & "窗口高度為:" & CStr(.Height) End With End Sub
【效果展示】


【凍結窗口】
在Excle中可以直接使用凍結窗口凍結,但是這個不是很方便

下面我們使用宏來自定義凍結的行
【代碼區域】
Sub 凍結窗口() Dim win As Window Set win = Application.ActiveWindow With win .Split = True '凍結開關打開 .SplitColumn = 4 '從第4列開始凍結 .SplitRow = 3 '從第3行開始凍結 End With win.FreezePanes = True '拆分凍結項打開 MsgBox "凍結完成!", vbOKOnly, "凍結窗口" Set win = Nothing End Sub
【效果展示】

【更改工作簿名稱】
【代碼區域】
Sub 更改工作簿名稱() Dim filename As String filename = "C:\OLIVER.xlsx" Name filename As "C:\OLIVER_附件.xlsx" MsgBox ("工作簿名稱修改完成"), vbOKOnly, "修改名稱" End Sub
【效果展示】


【關閉工作簿】
【代碼區域】
Application.ActiveWorkbook.Close
Application.Quit
