Clase Worksheet (Excel VBA)

La clase Worksheet representa una hoja de cálculo.

Los principales procedimientos de la clase Worksheet son Sheets.Add, Sheets.Copy, Sheets.Delete, Sheets.Select, Activate, Copy, Delete, Select, Worksheets.Add, Worksheets.Copy, Worksheets.Delete y Worksheets.Select

Set

Para usar una variable de clase Worksheet, primero debe ser instanciado, por ejemplo

Dim ws as Worksheet
Set ws = ActiveSheet

Los siguientes procedimientos se pueden usar para establecer variables de clase Worksheet : Application.Charts, Application.Sheets, Application.Worksheets, Window.SelectedSheets, Workbook.Charts, Workbook.Sheets, Workbook.Worksheets, Application.ActiveSheet, Chart.Next, Chart.Previous, HPageBreak.Parent, Range.Parent, Range.Worksheet, Sheets.Item, Sheets.Item, Sheets.Add, Sheets.Add, Slicer.Parent, VPageBreak.Parent, Window.ActiveSheet, Workbook.ActiveSheet, Next, Previous, Worksheets.Item y Worksheets.Add

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos Worksheet en una colección.

Dim ws As Worksheet
For Each ws In Worksheets
	
Next ws

Temas

Algunos procedimientos de esta clase se han agrupado en temas y se describen en páginas temáticas separadas

Add with its procedures Sheets.Add y Worksheets.Add
Copy with its procedures Sheets.Copy, Copy y Worksheets.Copy
Print with its procedures Sheets.HPageBreaks, Sheets.PrintOut, Sheets.PrintPreview, Sheets.VPageBreaks, DisplayPageBreaks, HPageBreaks, PageSetup, PrintedCommentPages, PrintOut, PrintPreview, ResetAllPageBreaks, VPageBreaks, Worksheets.HPageBreaks, Worksheets.PrintOut, Worksheets.PrintPreview y Worksheets.VPageBreaks
Select with its procedures Sheets.Select, Select y Worksheets.Select
Display/Show with its procedures DisplayRightToLeft, ShowAllData y ShowDataForm
Enable with its procedures EnableCalculation, EnableFormatConditionsCalculation, EnableOutlining, EnablePivotTable y EnableSelection
Protect with its procedures Protect y Unprotect

Métodos

Los principales métodos de la clase Worksheet son

Sheets.Delete - Elimina el objeto.

Charts.Delete

Activate -

ActiveSheet.Activate

Delete - Elimina el objeto.

ActiveSheet.Delete

Worksheets.Delete - Elimina el objeto.

Dim wrks As Worksheets: Set wrks = 
wrks.Delete

Otros Métodos

Sheets.FillAcrossSheets - Copia un rango en el mismo lugar en toda una serie de hojas de cálculo.

Sheets.Move - Desplaza la hoja a otro lugar del libro.

ChartObjects - Devuelve un objeto que representa un único gráfico incrustado (un objeto ChartObject ) o una colección de todos los gráficos incrustados (un objeto ChartObjects ) en la hoja.

CheckSpelling - Comprueba la ortografía de un objeto.

CircleInvalid - Rodea con un círculo los elementos no válidos de la hoja de cálculo.

ClearArrows - Borra las flechas de rastreo de la hoja de cálculo. La característica auditoría agrega las flechas de rastreo.

ClearCircles - Borra los círculos de los elementos no válidos de la hoja de cálculo.

Evaluate - Convierte un nombre de Microsoft Excel en un objeto o un valor.

ExportAsFixedFormat - Exporta a un archivo con el formato especificado.

Move - Desplaza la hoja a otro lugar del libro.

OLEObjects - Devuelve un objeto que representa un único objeto OLE (un objeto OLEObject) o una colección de todos los objetos OLE (una colección OLEObjects ) del gráfico o de la hoja. Solo lectura.

Paste - Pega el contenido del Portapapeles en la hoja.

PasteSpecial - Pega el contenido del portapapeles en la hoja, usando un formato especificado. Use este método para pegar datos de otras aplicaciones o bien para pegarlos con un formato específico.

PivotTables - Devuelve un objeto que representa un solo informe de tabla dinámica (un objeto PivotTable ) o una colección de todos los informes de tabla dinámica (un objeto PivotTables ) en una hoja de cálculo. Solo lectura.

PivotTableWizard - Crea un nuevo informe de tabla dinámica. Este método no muestra el Asistente para tablas dinámicas. Este método no está disponible para orígenes de datos OLE DB. Utilice el método Add para agregar una memoria caché de tabla dinámica y, a continuación, crear un informe de tabla dinámica basado en la memoria caché.

SaveAs - Guarda los cambios del gráfico o de la hoja de cálculo en un archivo diferente.

Scenarios - Devuelve un objeto que representa un único escenario (un objeto Scenario ) o una colección de escenarios (un objeto Scenarios ) en la hoja de cálculo.

SetBackgroundPicture - Establece el gráfico de fondo para una hoja de cálculo.

XmlDataQuery - Devuelve un objeto Range que representa las celdas asignadas a un XPath en particular. Devuelve NothingNothing si la expresión XPath especificada no se ha asignado a la hoja o si el rango asignado está vacío.

XmlMapQuery - Devuelve un objeto Range que representa las celdas asignadas a un XPath en particular. Devuelve NothingNothing si la expresión XPath especificada no se ha asignado a la hoja.

Worksheets.FillAcrossSheets - Copia un rango en el mismo lugar en toda una serie de hojas de cálculo.

Worksheets.Move - Desplaza la hoja a otro lugar del libro.

Propiedades

Sheets.Count Devuelve un valor Long que representa el número de objetos de la colección.

Dim lngCount As Long
lngCount = Charts.Count

Sheets.Item Devuelve un solo objeto de una colección.

Dim chrItem As Chart
Set chrItem = Charts(Index:=1)

Sheets.Parent Devuelve el objeto primario del objeto especificado. Solo lectura.

Dim wbParent As Workbook
Set wbParent = Charts.Parent

Sheets.Visible Devuelve o establece un valor de tipo Variant que determina si el objeto es visible.

Charts.Visible = True

AutoFilter Devuelve un objeto AutoFilter si el filtrado está activado. Solo lectura.

Dim afrAutoFilter As AutoFilter
Set afrAutoFilter = ActiveSheet.AutoFilter

AutoFilterMode True si las flechas desplegables de Filtro automático están visibles en la hoja. Esta propiedad es independiente de la propiedad FilterMode. Boolean de lectura y escritura.

ActiveSheet.AutoFilterMode = True

Cells Devuelve un objeto Range que representa todas las celdas de la hoja de cálculo (no solo las celdas que están actualmente en uso).

Dim rngCells As Range
Set rngCells = ActiveSheet.Cells

CircularReference Devuelve un objeto Range que representa el rango que contiene la primera referencia circular en la hoja o bien no devuelve nada si no hay ninguna referencia circular en la hoja. Para que puedan efectuarse los cálculos es necesario eliminar la referencia circular.

Dim rngCircularReference As Range
Set rngCircularReference = ActiveSheet.CircularReference

CodeName Devuelve el nombre de código del objeto. String de solo lectura.

Dim strCodeName As String
strCodeName = ActiveSheet.CodeName

Columns Devuelve un objeto Range que representa todas las columnas de la hoja de cálculo especificada.

Dim rngColumns As Range
Set rngColumns = ActiveSheet.Columns

Comments Devuelve una colección Comments que representa todos los comentarios de la hoja de cálculo especificada. Solo lectura.

Dim cmmsComments As Comments
Set cmmsComments = ActiveSheet.Comments

CommentsThreaded Devuelve una colección CommentsThreaded que representa todos los comentarios de nivel superior/raíz (sin respuesta) para la hoja de cálculo especificada. Incluye comentarios heredados y modernos. Solo lectura.

Dim ctdCommentsThreaded As CommentsThreaded
Set ctdCommentsThreaded = ActiveSheet.CommentsThreaded

ConsolidationFunction Devuelve el código de función que se emplea en la consolidación actual. Puede ser una de las constantes de XlConsolidationFunction. Long de sólo lectura.

Dim xcfConsolidationFunction As XlConsolidationFunction
xcfConsolidationFunction = ActiveSheet.ConsolidationFunction

ConsolidationOptions Devuelve una matriz de tres elementos de opciones de consolidación, como se muestra en la siguiente tabla. Si el elemento es True, se establecerá la opción. Variant de solo lectura.

Dim varConsolidationOptions As Variant
varConsolidationOptions = ActiveSheet.ConsolidationOptions

ConsolidationSources Devuelve una matriz de valores de cadena que asignan un nombre a las hojas de origen de la consolidación actual de la hoja de cálculo. Devuelve Empty si no hay ninguna consolidación en la hoja. Variant de solo lectura.

Dim varConsolidationSources As Variant
varConsolidationSources = ActiveSheet.ConsolidationSources

CustomProperties Devuelve un objeto CustomProperties que representa la información de identificador asociada a una hoja de cálculo.

Dim cpsCustomProperties As CustomProperties
Set cpsCustomProperties = ActiveSheet.CustomProperties

EnableAutoFilter True si están activadas las flechas de Autofiltro cuando se activa la protección de la interfaz de usuario. Boolean de lectura y escritura.

ActiveSheet.EnableAutoFilter = True

FilterMode True si la hoja de cálculo está en el modo filtrar. Boolean de solo lectura.

Dim booFilterMode As Boolean
booFilterMode = ActiveSheet.FilterMode

Hyperlinks Devuelve una colección Hyperlinks que representa los hipervínculos de la hoja de cálculo.

Dim hypsHyperlinks As Hyperlinks
Set hypsHyperlinks = ActiveSheet.Hyperlinks

Index Devuelve un valor de tipo Long que representa el número de índice del objeto dentro de una colección de objetos similares.

Dim lngIndex As Long
lngIndex = ActiveSheet.Index

ListObjects Devuelve una colección de objetos ListObject en la hoja de cálculo. Colección ListObjects de solo lectura.

Dim losListObjects As ListObjects
Set losListObjects = ActiveSheet.ListObjects

MailEnvelope Representa un encabezado de correo electrónico de un documento.

Dim meeMailEnvelope As Office.MsoEnvelope
Set meeMailEnvelope = ActiveSheet.MailEnvelope

Name Devuelve o establece un valor de tipo String que representa el nombre del objeto.

ActiveSheet.Name =

NamedSheetViews

Dim As Variant
ActiveSheet.NamedSheetViews

Names Devuelve una colección names que representa todos los nombres específicos de hoja de cálculo (nombres definidos con el "WorksheetName!" prefijo). Objeto Names de sólo lectura.

Dim nmsNames As Names
Set nmsNames = ActiveSheet.Names

Next Devuelve un objeto Worksheet que representa la hoja siguiente.

Dim wsNext As Worksheet
Set wsNext = ActiveSheet.Next

Outline Devuelve un objeto Outline que representa el esquema de la hoja de cálculo especificada. Solo lectura.

Dim otlOutline As Outline
Set otlOutline = ActiveSheet.Outline

Parent Devuelve el objeto primario del objeto especificado. Solo lectura.

Dim wbParent As Workbook
Set wbParent = ActiveSheet.Parent

Previous Devuelve un objeto Worksheet que representa la hoja anterior.

Dim wsPrevious As Worksheet
Set wsPrevious = ActiveSheet.Previous

ProtectContents Es True si el contenido de la hoja está protegido. Únicamente protege celdas individuales. Para activar la protección del contenido, use el método Protect con __ el argumento Contents establecido en true. Boolean de solo lectura.

Dim booProtectContents As Boolean
booProtectContents = ActiveSheet.ProtectContents

ProtectDrawingObjects Es True si las formas están protegidas. Para activar la protección de la forma, use el método Protect con el argumento DrawingObjects establecido en true. Boolean de solo lectura.

Dim booProtectDrawingObjects As Boolean
booProtectDrawingObjects = ActiveSheet.ProtectDrawingObjects

Protection Devuelve un objeto PROTECTION que representa las opciones de protección de la hoja de cálculo.

Dim prtProtection As Protection
Set prtProtection = ActiveSheet.Protection

ProtectionMode Es True si está activada la protección de sólo interfaz de usuario. Para activar la protección de interfaz de usuario, use el método Protect con el argumento UserInterfaceOnly establecido en true. Boolean de solo lectura.

Dim booProtectionMode As Boolean
booProtectionMode = ActiveSheet.ProtectionMode

ProtectScenarios True si los escenarios de la hoja de cálculo están protegidos. Boolean de solo lectura.

Dim booProtectScenarios As Boolean
booProtectScenarios = ActiveSheet.ProtectScenarios

QueryTables Devuelve la colección QueryTables que representa todas las tablas de consulta de la hoja de cálculo especificada. Solo lectura.

Dim qtsQueryTables As QueryTables
Set qtsQueryTables = ActiveSheet.QueryTables

Range Devuelve un objeto Range que representa una celda o un rango de celdas.

Dim strCell1 As String: strCell1 = 
Dim rngRange As Range
Set rngRange = ActiveSheet.Range(Cell1:=strCell1)

Rows Devuelve un objeto Range que representa todas las filas de la hoja de cálculo especificada.

Dim rngRows As Range
Set rngRows = ActiveSheet.Rows

ScrollArea Devuelve o establece el rango donde se permite el desplazamiento, como una referencia de rango de estilo A1. No pueden seleccionarse las celdas que estén fuera del área de desplazamiento. String de lectura y escritura.

ActiveSheet.ScrollArea =

Shapes Devuelve una colección Shapes que representa todas las formas de la hoja de cálculo. Solo lectura.

Dim shpsShapes As Shapes
Set shpsShapes = ActiveSheet.Shapes

Sort Devuelve un objeto Sort . Solo lectura.

Dim srtSort As Sort
Set srtSort = ActiveSheet.Sort

StandardHeight Devuelve el alto estándar (predeterminado) de todas las filas de la hoja de cálculo, en puntos. Double de solo lectura.

Dim dblStandardHeight As Double
dblStandardHeight = ActiveSheet.StandardHeight

StandardWidth Devuelve o establece el ancho estándar (predeterminado) de todas las columnas de la hoja de cálculo. Double de lectura y escritura.

ActiveSheet.StandardWidth =

Tab Devuelve un objeto Tab para una hoja de cálculo.

Dim tabTab As Tab
Set tabTab = ActiveSheet.Tab

TransitionExpEval True si Microsoft Excel usa las reglas de evaluación de expresiones de Lotus 1-2-3 en la hoja de cálculo. Boolean de lectura y escritura.

ActiveSheet.TransitionExpEval = True

TransitionFormEntry True si Microsoft Excel usa las reglas de inserción de fórmulas de Lotus 1-2-3 en la hoja de cálculo. Boolean de lectura y escritura.

ActiveSheet.TransitionFormEntry = True

Type Devuelve un valor de tipo XlSheetType que representa el tipo de hoja de cálculo.

Dim xstType As XlSheetType
xstType = ActiveSheet.Type

UsedRange Devuelve un objeto Range que representa el rango utilizado en la hoja de cálculo especificada. Solo lectura.

Dim rngUsedRange As Range
Set rngUsedRange = ActiveSheet.UsedRange

Visible Devuelve o establece un valor XlSheetVisibility que determina si el objeto es visible.

ActiveSheet.Visible = xlSheetHidden

Worksheets.Count Devuelve un valor Long que representa el número de objetos de la colección.

Dim wrks As Worksheets: Set wrks = 
Dim lngCount As Long
lngCount = wrks.Count

Worksheets.Item Devuelve un solo objeto de una colección.

Dim wrks As Worksheets: Set wrks = 
Dim wsItem As Worksheet
Set wsItem = wrks(Index:=1)

Worksheets.Parent Devuelve el objeto primario del objeto especificado. Solo lectura.

Dim wrks As Worksheets: Set wrks = 
Dim objParent As Object
Set objParent = wrks.Parent

Worksheets.Visible Devuelve o establece un valor de tipo Variant que determina si el objeto es visible.

Dim wrks As Worksheets: Set wrks = 
wrks.Visible = True