首頁>科技>

No.1

通常對Excel工作表進行操作的時候,系統會預設一個活動工作表,這一步在開啟Exce檔案的時候,系統會自動確認選擇。

但是,在多個工作表之間跳轉的情況下,就需要我們對工作表進行甄別選擇了。

怎麼選擇要操作的工作表呢?

有幾種方法:

在知道工作表名稱的情況下選擇。在知道某一個區域物件的情況下選擇。迴圈工作表遍歷選擇。

本節我們介紹第二種,在知道某一個區域物件的情況下選擇。

也就是Range物件之下的Worksheet屬性。

No.2

Range物件,給提供了一種屬性,可返回一個工作表物件,這個工作表物件就是這個Range物件所在的工作表。

如上圖,第二行程式碼所示:

Range("NowRange").Worksheet

這行程式碼返回一個工作表物件,是包含“NowRange”名稱區域的一個工作表。

這樣程式設計應用的時候,就可以對包含此名稱的表進行一些操作。

在一些情況下如下程式碼也同樣返回一個工作表物件。

如:Range("NowRange").Parent

Parent是一個返回父物件的屬性,上述程式碼也可返回一個Worksheet物件。

它必須是區域名稱"NowRange"的父物件。

下圖為例,對Range.Worksheet屬性進行說明。

No.3

通用聲明裡設定一些常量,使用Const 變數名="字串"方法。

使用如下程式碼的時候,要根據自己的工作表修改相應的工作表名稱和單元格區域。

執行之後,返回區域名稱為Ra的工作表名稱"Sheet1"。

Const s1 = "Sheet1" '常數工作表名Const s2 = "Sheet2" '常數工作表名Const Ra = "Range1" '常數單元格區域名Const Rb = "Range2" '常數單元格區域名Const Raddress = "B2:D12" '常數單元格區域

按鈕程式碼

Private Sub CommandButton2_Click()    setActiveSheet s1, Ra, Raddress'呼叫過程    Dim R As Range    Set R = ActiveSheet.Range(Ra)    Dim w As Worksheet    Set w = R.Worksheet    MsgBox "當前工作表: " & w.Name, vbInformation, "提示"End Sub

過程程式碼

Dim st As WorksheetDim Ranges As RangeSub setActiveSheet(s, Ra, Raddress)    Set st = ThisWorkbook.Worksheets(s)    st.Activate    Set Ranges = st.Range(Raddress)    Ranges.Name = RaEnd Sub

此程式碼應用了一個常用模組,如上圖片。

功能為設定當前工作表和表格區域、名稱。

這一步很重要,在呼叫之後才可以實現工作表物件返回。

初學VBA程式碼,可能對模組的使用比較陌生,逐漸熟練以後會得心應手的。

如本例中返回一個工作表名稱,並沒有太大意義,更重要的是,我們得到了一個工作表物件"W"。

利用這個物件"W",可以做很多事情。

就像在茫茫人海中找到了某一個人,知道了他的名字。但是這有什麼意義呢,更大意義在於,找到這個人要和他進行互動,要和他產生某種聯絡,最終生產某些價值。

這就是下一步程式設計的工作所在。

當然,看上去沒有意義的事情,是很重要的一件事情,在和這個物件產生某些互動的情況之前,首先要找到它。

就如一枚導彈,發射之前,要準確鎖定目標,這個過程就顯得十分有必要了。

不然就變成了無的放矢,失了準心,導彈就毫無價值。

所以,掌控Range.Worksheet屬性,很有必要。

---END---

12
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 為AI注入“人性”,OPPO公開唇語識別專利,互動更智慧