VBA-工作薄對象及常用方法匯總

2021-02-23 茶瓜子的休閒館

之前寫過兩篇VBA常用方法了,傳送門:

VBA-單元格對象及常用方法匯總

VBA-工作表對象及常用方法匯總

這期寫到工作薄相關的方法了


這裡講的工作簿其實就是指我們平時看見的.xlsx/.xlsx格式的Excel文檔


MsgBox "活動工作簿名字為:" & ActiveWorkbook.Name

ActiveWorkbook 代表的是當前激活(打開最前端)的文檔。


當前運行代碼的工作薄


MsgBox "運行代碼的工作簿名字為:" & ThisWorkbook.Name

我們在一個工作薄上寫代碼,但是激活的可能並非原工作簿,因此可以用ThisWorkbook 指回正運行代碼的工作薄。


新建、保存工作簿


Workbooks.Add    '新建空白工作簿並激活ActiveWorkbook.password = "123"   '設置工作簿的查看密碼為「123」ActiveWorkbook.SaveAs Filename:="D:\桌面\myfile.xlsx"    '保存到桌面並重命名為myfile

SaveChanges參數為False為不保存直接關閉,True為保存並關閉。


打開、關閉工作薄


Workbooks.Open("D:\桌面\myfile.xlsx")  '打開桌面的myfile工作薄ActiveWindow.Close SaveChanges:=False   '關閉當前活動工作薄


工作薄循環


工作薄的批處理我之前單獨開過一篇了,傳送門:

你還在一個一個打開文檔?讓VBA幫你一次搞定吧


代碼:

Sub test()Dim myPath$, f$, Wb As WorkbookmyPath = ThisWorkbook.Path & "\"f = Dir(myPath & "*.xls*")On Error Resume Next    Do While f <> ""        If f <> ThisWorkbook.Name Then        Set Wb = Workbooks.Open(myPath & f, UpdateLinks:=0)    '打開工作簿後在每個工作簿要做的事情          '關閉本工作簿        Wb.Close False        End If        f = Dir    LoopSet Wb = Nothing'-循環完工作簿後要做的事情''-結束End Sub


不打開工作薄讀取其他工作薄數據


這個代碼是在Excel論壇抄的,作者yuanzhuping


使用GetObject函數來獲取對指定的Excel工作表的引用:

Sub CopyData_1()Dim Temp As StringTemp = "'" & ThisWorkbook.Path & "\[數據表.xls]Sheet1'!"With Sheet1.Range("A1:F22").FormulaR1C1 = "=" & Temp & "RC".Value = .ValueEnd WithEnd Sub

代碼解析:

CopyData_2過程使用GetObject函數來獲取「數據表」工作簿中的數據。

第4行代碼關閉屏幕更新加快運行速度。

第5行代碼將引用工作簿的路徑賦給變量Temp。

第6行代碼使用Set語句將GetObject函數返回的對象賦給對象變量Wb。

GetObject函數返回文件中的ActiveX對象的引用,語法如下:

GetObject([pathname] [,class])

參數pathname是可選的,包含待檢索對象的文件的全路徑和名稱。如果省略,則class參數是必需的。

參數class是可選的,代表該對象的類的字符串。

Class參數的格式為appname.objecttype,語法的各個部分如下

部分

描述

appname

必需的,提供該對象的應用程式名稱。

objecttype

必需的,待創建對象的類型或類。


第7行到第10行代碼,當GetObject函數指定的對象被激活之後,就可以在代碼中使用對象變量Wb來訪問這個對象的屬性和方法。

其中第7、8行代碼將「數據表」工作簿中的第1張工作表已使用區域的數據賦給本工作表的單元格,第9行代碼關閉「數據表」工作簿,使用GetObject函數返回對象的引用時,雖然在窗口中看不到對象的實例,但實際上是打開的,所以需用Close語句將其關閉。

第12行代碼開啟屏幕更新。



工作薄層面平時使用比較多的就是打開、關閉、保存以及工作簿循環了,一般工作使用的話,也想不到別的情景了,如果有你覺得需要用的情景,歡迎在下方留言區留言~


VBA入門篇:

1.如何錄製宏、新建工作表、更改表名、單元格賦值

膠水代碼初體驗(1/2)

2.如何建立循環

膠水代碼初體驗(2/2)

3.如何建立判斷;如何動態獲取最後一行:

震驚!判斷語句竟如此簡單!

4.如何用VBA進行篩選

就是這麼簡單系列——VBA篩選

5.如何進行工作表批處理-工作表循環

初步接觸工作表批處理——VBA表間循環

6.解放你的雙手-工作簿循環

你還在一個一個打開文檔?讓VBA幫你一次搞定吧



覺得文章對你有幫助,就點一下右下角的在看吧~謝謝你的支持




相關焦點

  • Access導出到Excel方法匯總
    Access vba有各種方法可以導出到Excel,大致如下表
  • 快速將Excel匯總數據拆分到各工作表,包含VBA方法喲
    今天給大家分享個把匯總數據表拆分到各個不同的工作表中的操作方法。
  • 【VBA】Range對象的常用方法屬性(三)
    本文繼續上一節的Range對象的方法和屬性的講解。上一講講到了End屬性尋找最後一個已經使用的單元格。這一節繼續講解關於動態找單元格區域方面的屬性。
  • 史上最全工程造價常用公式匯總,包含所有造價公式,造價人必備
    史上最全工程造價常用公式匯總,包含所有造價公式,造價人必備綜合運用管理學、經濟學和工程技術等方面的知識與技能,對工程造價進行預測、計劃、控制、核算、分析和評價等的工作過程被稱為工程造價。史上最全工程造價常用公式匯總一共有50多頁,100多個公式,主要有:預備費、工程費、生產性建設項目擬建項目總投資、非生產性建設項目總投資、自有資金利潤率等內容。
  • Excel中多工作表跨表按條件匯總求和
    點擊上方藍字關注 Office職場學堂多工作表跨表按條件匯總求和
  • 1/19節vba(for循環)
    什麼是vba?什麼是變量?相對引用什麼意思?①今天呢,我是這麼個工作,我說我想「抽打張三」,然後覺得抽張三呢我比較累,我不想抽他。②於是,我把李四叫過來了,我說李四啊,你過來一下,你幫我抽打張三。③李四說「我咋會打人呢,我不會這個。」④我說「來,我抽一遍,你看著。」,我上去就抽了張三一嘴巴,問李四「你記住了嗎」。
  • 會計工作中的常用函數和Excel小技巧匯總
    之後有一次現場教小朋友自己嘗試做一份審計底稿(大約是半個月以後),然後她將一個簡單的動作重複了很多很多遍時,我突然反思了一下自己,然後我問她:「最近工作是不是還比較習慣?」她小聲告訴我:「發現自己有很多工作,都做的沒有效率,知道有很多需要學習的地方,但又不知道從哪裡入手。」自此,我發現自己對一些事物的認定有些想當然了。
  • 多工作表跨表按條件匯總求和
    之前在文章中講過條件求和的常用方法,單個工作表的條件求和,很多同學都已經會藉助Excel自動計算了,但當遇到多表條件匯總的問題,很多人還沒有思路。今天我來結合一個實際案例,介紹1個公式搞定多工作表跨表按條件匯總求和的方法。
  • 手把手教你Excel做目錄的方法
    Excel工作簿頁面太多,查找不便,本文就介紹怎麼生成sheet頁連結目錄,並在各sheet頁中添加返回目錄連結,採用簡單並容易理解的函數結合vba腳本的方法來實現。1、使用vba腳本生成目錄將以下代碼放到代碼處:Sub createmulu()For i = 1 To Sheets.CountCells(i, 1) = Sheets(i).NameNextEnd Sub
  • 【VBA】一秒拆分工作表
    介紹完這個新接觸到的方法,接下來講解怎麼利用這個方法來拆分工作表。Sub CrtTable() Dim rng As Range '定義單元格變量,用於循環遍歷單元格 Dim sht As Worksheet '定義工作表變量
  • Excel VBA 實例(22) - 一鍵篩選其他工作表或工作簿的數據
    今天說的這個vba實例還是和學校有關。
  • Excel VBA 實例(33) – 一鍵提取word中加粗文字
    之前介紹過提取word文件內容的vba實例(見文末),其實對於word中加粗的文字這類涉及到文字格式的內容,一樣也可以想辦法進行提取,今天就來分享這樣一個實例
  • Excel分類匯總變通用法,減輕工作量的神器
    、分類求平均值等操作,可以用分類匯總非常便捷的實現。選擇要分類匯總的區域(合併的單元格表頭不要選),點擊「數據」-分類匯總,在「分類欄位」選擇「區域」,在「匯總方式」選擇「求和」(要計算合計,當然也可以根據需要選擇計數等匯總方式),在「選定匯總項」中勾選要匯總的「合伙人、供應商、銷售額」等,點擊確定。
  • Excel製作工資條幾種方法?排序法,函數法,vba 你更喜歡哪種?
    不同的方法,永遠相同格式的工資條。當然製作工資條的方法有很多,比如排序法,函數法,vba 或錄製宏,還有以前的郵件合併法。
  • 選擇性粘貼常用方法
    選擇性粘貼能夠實現多種神奇的數據處理效果,以下是選擇性粘貼的一些常用方法:1、將公式粘貼為數值
  • 【Excel】VBA常用單詞和語法
    Inputbox輸入函數Cells所有單元格Sheets工作表集合Worksheets工作表集合Workbooks工作簿集合Thisworkbook: 代碼所在的工作簿Activeworkbook活動工作簿
  • Excel中IF函數的常用方法
    Excel中,IF函數,是一個常用函數今天為大家介紹幾個IF的常用方法
  • 【Excel書籍推薦】學Excel的VBA,什麼書還不錯?
    Excel疑難千尋千解叢書《Excel 2010 VBA入門與提高