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
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");
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
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);
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
Parametri facoltativi nelle soluzioni Office