VBA ThisWorkbook | Com s'utilitza la propietat ThisWorkbook a Excel VBA?

Excel VBA ThisWorkbook

VBA ThisWorkbook significa el llibre en què escrivim el codi Excel. Per exemple, si esteu treballant al llibre de treball anomenat "Sales 2019.xlsx", normalment ens referim al llibre de treball així.

Quaderns de treball ("Vendes 2019.xlsx"). Activeu

El codi activarà el llibre de treball anomenat "Sales 2019.xlsx".

En lloc d’escriure així, simplement podem escriure el codi VBA a continuació.

ThisWorkbook.Activate '

Aquí ThisWorkbook fa referència al llibre de treball on escrivim el codi. En referir aquesta paraula, podem executar totes les tasques del llibre de treball actual i evitar un codi llarg amb un nom de llibre de treball completament anomenat.

Estic segur que també haureu vist la paraula "Quadern de treball actiu" quan us referiu al codi dels altres. Aquesta és també una de les paraules més utilitzades en la codificació. Veurem quines diferències hi ha entre aquestes dues paraules bàsiques.

Treballar amb ThisWorkbook a Excel VBA

La paraula de referència "ThisWorkbook" és més fiable que el qualificador d'objecte Workbooks. Una de les tendències humanes és escriure malament el nom del llibre, cosa que provoca el llançament d’un missatge d’error.

Una raó més important per la qual VBA ThisWorkbook és més fiable, ja que per si de cas canvies el nom del llibre, hem de modificar el codi perquè hem utilitzat la paraula "ThisWorkbook".

Per tant, ThisWorkbook és més segur d’utilitzar per referir-se al llibre de treball on escrivim el codi.

Podeu descarregar aquesta plantilla Excel de VBA ThisWorkbook aquí - Plantilla Excel de VBA ThisWorkbook

Exemple 1

Veurem alguns exemples en què podem utilitzar la paraula ThisWorkbook en excel VBA. El següent codi imprimirà el nom del llibre.

Codi:

 Sub TWB_Example1 () Dim WBName As String WBName = ThisWorkbook.Name MsgBox WBName End Sub 

Quan executeu el codi manualment o amb la tecla F5, el codi anterior mostrarà el nom del llibre al quadre de missatges de VBA.

Exemple 2

En lloc d'utilitzar la paraula "Aquest llibre", podem utilitzar variables per establir la referència del llibre i fins i tot reduir dràsticament la longitud del codi a VBA. Per exemple, mireu primer el codi següent.

Codi:

 Sub TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Activeu ThisWorkbook.Save ThisWorkbook.Close ThisWorkbook.SaveAs End Sub 

El codi anterior ha utilitzat "ThisWorkbook" a totes les línies del codi. Que difícil és escriure la paraula cada vegada. Per tant, podem minimitzar-ho mitjançant l'ús de variables.

Ara mireu el codi següent amb la variable.

Codi:

 Sub TWB_Example2 () Dim Wb As Workbook Set Wb = ThisWorkbook Wb.Active Wb.Worksheets ("Sheet1"). Active Wb.Save Wb.Close Wb.SaveAs End Sub 

Sembla bonic, oi ??

Permeteu-me que us expliqui el codi.

Primer he declarat la variable com a objecte del Llibre de treball.

Dim Wb com a llibre de treball

Com que es tracta d’una variable objecte, hem d’establir la referència al llibre de treball concret. Per tant, he utilitzat la referència "ThisWorkbook".

Estableix Wb = ThisWorkbook

Ara, la variable "Wb" fa referència al llibre de treball on escrivim el codi en aquest moment. A partir d’aquí, en el procediment, no hem d’utilitzar la paraula “ThisWorkbook”, sinó la variable “Wb”.

Llibre de treball actiu vs ThisWorkbook a Excel VBA

Com he dit al principi de l'article, molts programadors utilitzen les paraules Active Workbook i ThisWorkbook molt sovint a la seva codificació VBA. Com a lector o nou alumne, no és fàcil d’entendre aquests dos. Per tant, permeteu-me explicar-vos algunes de les diferències.

Diferència # 1: significat

  • Llibre de treball actiu: Active Workbook no és necessàriament el llibre de treball on escrivim el codi en aquest moment. Si teniu diversos llibres de treball oberts i el que sigui visible a la vostra pantalla es considerarà Quadern de treball actiu.
  • Aquest llibre de treball: Aquest llibre de treball és sempre el llibre de treball on escrivim el codi en aquest moment.

Diferència 2: probabilitats d'error

  • Llibre de treball actiu: L’ús d’Active a la codificació pot provocar molts errors i confusió perquè mai no sabem quin llibre de treball està actiu tret que mencionem específicament el llibre de treball que s’ha d’activar abans d’utilitzar la paraula Active Workbook.
  • Aquest llibre de treball: Aquest llibre de treball no pot sortir malament perquè no importa quin llibre de treball estigui actiu, sempre pren la referència del llibre de treball on estem escrivint el codi.