Procedura: memorizzare e recuperare valori di data in intervalli di Excel

È possibile memorizzare e recuperare valori in un controllo NamedRange o in un oggetto dell'intervallo nativo di Excel.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento e di applicazione per Excel 2007 ed Excel 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

Se si archivia un valore data che cade il 1/1/1900 o dopo tale data tramite gli strumenti di sviluppo di Office in Visual Studi, tale valore verrà memorizzato in formato automazione OLE (OA). È necessario utilizzare il metodo FromOADate per recuperare il valore delle date in formato automazione OLE (OA). Se la data è precedente al 1/1/1900, viene memorizzata come stringa.

Nota

Le date di Excel differiscono dalle date dell'automazione OLE per i primi due mesi del 1900. Esistono inoltre differenze se l'opzione del sistema di date del 1904 è selezionata. Negli esempi di codice riportati di seguito non vengono annoverate queste differenze.

Utilizzo di un controllo NamedRange

  • Questo esempio è valido per personalizzazioni a livello di documento. Inserire il codice seguente in una classe Sheet, non nella classe ThisWorkbook.

Per memorizzare un valore di data in un intervallo denominato

  1. Creare un controllo NamedRange nella cella 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");
    
  2. Impostare la data odierna come valore di NamedRange1.

    Dim dt As DateTime = DateTime.Now
    NamedRange1.Value2 = dt
    
    DateTime dt = DateTime.Now;
    NamedRange1.Value2 = dt;
    

Per recuperare un valore di data da un intervallo denominato

  • Recuperare il valore di data da 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());
    

Utilizzo di intervalli nativi di Excel

Per memorizzare un valore di data in un oggetto intervallo nativo di Excel

  1. Creare un oggetto Range che rappresenta la cella A1.

    Dim rng As Excel.Range = Me.Application.Range("A1")
    
    Excel.Range rng = this.Application.get_Range("A1", missing);
    
  2. Impostare la data odierna come valore di rng.

    Dim dt As DateTime = DateTime.Now
    rng.Value2 = dt
    
    DateTime dt = DateTime.Now;
    rng.Value2 = dt;
    

Per recuperare un valore di data da un oggetto intervallo nativo di Excel

  • Recuperare il valore di data da 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());
    

Vedere anche

Attività

Procedura: fare riferimento agli intervalli dei fogli di lavoro nel codice

Procedura: aggiungere controlli NamedRange a fogli di lavoro

Concetti

Utilizzo degli intervalli

Controllo NamedRange

Parametri facoltativi nelle soluzioni Office

Altre risorse

Cenni preliminari sul modello a oggetti di Excel