Cómo: Almacenar y recuperar valores de fecha en rangos de Excel
Actualización: noviembre 2007
Se aplica a |
---|
La información de este tema sólo se aplica a los proyectos y versiones especificados de Visual Studio Tools para Office de Microsoft Office. Tipo de proyecto
Versión de Microsoft Office
Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto. |
Puede almacenar y recuperar valores de un control NamedRange o de objeto de rango de Excel nativo.
Si almacena un valor de fecha igual o anterior a 1/1/1900 en un rango con Visual Studio Tools para Office, se almacena en 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 se diferencian de las fechas 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", missing), "NamedRange1");
Establezca la fecha actual como valor de NamedRange1.
Dim dt As DateTime = DateTime.Now NamedRange1.Value2 = dt
DateTime 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", missing);
Establezca la fecha actual como valor de rng.
Dim dt As DateTime = DateTime.Now rng.Value2 = dt
DateTime 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: Enviar valores a celdas de hojas de cálculo
Cómo: Hacer referencia a rangos de hojas de cálculo en el código
Cómo: Agregar controles NamedRange a hojas de cálculo
Conceptos
Información general sobre el modelo de objetos de Excel
Descripción de los parámetros opcionales en las soluciones de Office