Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede almacenar y recuperar valores de un control NamedRange o de objeto de rango de Excel nativo.
Se aplica a: La información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para Excel 2013 y Excel 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.
Si almacena un valor de fecha igual o anterior a 1/1/1900 en un intervalo con las herramientas de desarrollo de Office en Visual Studio, dicho valor se almacena con formato de automatización OLE (OA).Debe utilizar el método FromOADate para recuperar el valor de fechas de automatización OLE (OA).Si la fecha es anterior a 1/1/1900, se almacena como una cadena.
[!NOTA]
Las fechas de Excel difieren de las fechas con formato de automatización OLE en los dos primeros meses de 1900.También existen diferencias si se activa la opción Sistema de fechas de 1904.Los siguientes ejemplos de código no tratan estas diferencias.
Usar un control NamedRange
- Se trata de un ejemplo para personalizaciones en el nivel del documento.El siguiente código debe colocarse en una clase Sheet, no en la clase ThisWorkbook.
Para almacenar un valor de fecha en un rango con nombre
Cree un control NamedRange en la celda A1.
Dim NamedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _ Me.Controls.AddNamedRange(Me.Range("A1"), "NamedRange1")Microsoft.Office.Tools.Excel.NamedRange NamedRange1 = this.Controls.AddNamedRange(this.get_Range("A1"), "NamedRange1");Establezca la fecha actual como valor de NamedRange1.
Dim dt As DateTime = DateTime.Now NamedRange1.Value2 = dtDateTime dt = DateTime.Now; NamedRange1.Value2 = dt;
Para recuperar un valor de fecha de un rango con nombre
Recupere el valor de fecha de NamedRange1.
Dim value As Object = NamedRange1.Value2 If Not value Is Nothing Then If TypeOf value Is Double Then dt = DateTime.FromOADate(CType(value, Double)) Else DateTime.TryParse(CType(value, String), dt) End If End If MessageBox.Show(dt.ToString())object value = NamedRange1.Value2; if (value != null) { if (value is double) { dt = DateTime.FromOADate((double)value); } else { DateTime.TryParse((string)value, out dt); } } MessageBox.Show(dt.ToString());
Usar rangos de Excel nativos
Para almacenar un valor de fecha en un objeto de rango de Excel nativo
Cree un Range que represente la A1.
Dim rng As Excel.Range = Me.Application.Range("A1")Excel.Range rng = this.Application.get_Range("A1");Establezca la fecha actual como valor de rng.
Dim dt As DateTime = DateTime.Now rng.Value2 = dtDateTime dt = DateTime.Now; rng.Value2 = dt;
Para recuperar un valor de fecha de un objeto de rango de Excel nativo
Recupere el valor de fecha de rng.
Dim value As Object = rng.Value2 If Not value Is Nothing Then If TypeOf value Is Double Then dt = DateTime.FromOADate(CType(value, Double)) Else DateTime.TryParse(CType(value, String), dt) End If End If System.Windows.Forms.MessageBox.Show(dt.ToString())object value = rng.Value2; if (value != null) { if (value is double) { dt = DateTime.FromOADate((double)value); } else { DateTime.TryParse((string)value, out dt); } } System.Windows.Forms.MessageBox.Show(dt.ToString());
Vea también
Tareas
Cómo: Hacer referencia a rangos de hojas de cálculo en el código mediante programación
Cómo: Agregar controles NamedRange a hojas de cálculo
Conceptos
Parámetros opcionales en las soluciones de Office