【VBA編程】14.操作工作簿對象


【訪問工作簿】

對已經打開的工作簿,可以通過使用索引號來訪問工作簿,也可以通過名稱來訪問工作簿

【代碼區域】

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM