مشاركة عبر


كيفية القيام بما يلي: تخزين و استرداد قيم التاريخ في النطاقات Excel

ينطبق على

تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع.

نوع المشروع

  • مشروعات على مستوى المستند

  • مشروعات على مستوى التطبيق

إصدار Microsoft Office

  • Excel 2007

  • Excel 2010

يمكنك تخزين واسترداد القيم في عنصر التحكم NamedRange أو كائن نطاق Excel الأصلي.

إذا قمت بتخزين قيمة التاريخ الذي يقع في أو بعد 1/1/1900 في نطاق باستخدام أدوات تطوير Office في Visual Studio, يتم تخزينه في تنسيق التنفيذ التلقائى لـ OLE ـ (OA). يجب عليك استخدام الأسلوب FromOADate لاسترداد قيمة تواريخ التنفيذ التلقائى لـ OLE ـ (OA). إذا كان التاريخ قبل 1/1/1900 يتم تخزينه كسلسلة.

ملاحظة

إذا تم تم تغييره المفتاح التوقيع، يجب إعادة تأسيس الثقة بواسطة استخدام تعجيل الثقة ClickOnce أو الشهادة يجب أن تكون موثوقة على المستوى مؤسسة. There are also differences if the 1904 date system option is checked. أمثلة التعليمة البرمجية أدناه لا تعالج هذه الاختلافات.

استخدام عنصر تحكم NamedRange (نطاق مسمى)

  • هذا مثال لتخصيصات على مستوى المستند. يجب وضع التعليمات البرمجية التالية في فئة ورقة، وليس في فئة ThisWorkbook.

لتخزين قيمة تاريخ في نطاق مسمى

  1. قم بإنشاء عنصر تحكم NamedRange في الخلية 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. قم بتعيين تاريخ اليوم كقيمة لـ NamedRange1.

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

لاسترداد قيمة تاريخ من نطاق مسمى

  • قم باسترداد قيمة التاريخ من 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());
    

استخدام نطاقات Excel الأصلية

لتخزين قيمة تاريخ في كائن نطاق Excel الأصلي

  1. قم بإنشاء Range الذي يمثل الخلية A1.

    Dim rng As Excel.Range = Me.Application.Range("A1")
    
    Excel.Range rng = this.Application.get_Range("A1", missing);
    
  2. قم بتعيين تاريخ اليوم كقيمة لـ rng.

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

لاسترداد قيمة تاريخ من كائن نطاق Excel أصلي

  • قم باسترداد قيمة التاريخ من 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());
    

راجع أيضًا:

المهام

كيفية القيام بما يلي: الإشارة إلى نطاقات ورقة العمل في التعليمات البرمجية

كيفية القيام بما يلي: إضافة عناصر التحكم NamedRange إلى أوراق العمل

المبادئ

العمل مع النطاقات

عنصر تحكم NamedRange

المعلمات الاختيارية في حلول Office

موارد أخرى

‏‫نظرة عامة لنموذج كائن Excel