Condividi tramite


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

Aggiornamento: novembre 2007

Si applica a

Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati.

Tipo di progetto

  • Progetti a livello di documento

  • Progetti a livello di applicazione

Versione Microsoft Office

  • Excel 2003

  • Excel 2007

Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazione.

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

Se si memorizza un valore di data che cade il 1/1/1900 o dopo tale data in un intervallo tramite Visual Studio Tools per Office, 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 in formato automazione OLE per i primi due mesi del 1900. Esistono inoltre delle differenze se viene selezionata l'opzione Sistema data 1904. 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: inviare valori alle celle del foglio di lavoro

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

Procedura: aggiungere controlli NamedRange a fogli di lavoro

Concetti

Utilizzo degli intervalli

Cenni preliminari sul modello a oggetti di Excel

Controllo NamedRange

Informazioni sui parametri facoltativi nelle soluzioni Office