ميلي ثانية في عداد المفقودين عند الحصول على قيمة التاريخ والوقت من Excel باستخدام صافي إمكانية التشغيل المتداخل

StackOverflow https://stackoverflow.com/questions/298458

  •  08-07-2019
  •  | 
  •  

سؤال

إذا وضعت قيمة التاريخ والوقت في خلية Excel باستخدام Range.set_value من خلال صافي COM إمكانية التشغيل المتداخل، ومن ثم استرداد قيمة تلك الخلية نفسها باستخدام Range.get_value، لا يتم إرجاع الجزء مللي ثانية من القيمة، على الرغم من كل شيء آخر هو الصحيح.

وهذا هو الخلل؟

ما هو الحل؟ انا التخمين ان استخدام خاصية VALUE2 بدلا قد تساعد. وقد أي شخص آخر حاول هذا؟

هل كانت مفيدة؟

المحلول 2

جون أو تحويل التاريخ والوقت إلى ضعف استخدام DateTime.ToOADate (ثم العودة مرة أخرى باستخدام DateTime.FromOADate) يعمل إذا قمت بتعيين القيمة باستخدام الخاصية Range.Value2.

والمشكلة الوحيدة مع هذه الخاصية هي أنه إذا كنت لا تعرف بالفعل، فإنه لا اقول لكم ان من المفترض أن يتم التعامل مع التاريخ والوقت الخلية. أعتقد أن حل هذا، وكنت بحاجة إلى استخدام طريقة بتمريرين: الحصول على قيم الخلية باستخدام Range.get_Value لتحديد نوع الخاصة بهم، ثم، على أي خلايا التاريخ والوقت، والحصول على قيمهم مرة أخرى باستخدام Range.Value2، ثم تحويل استخدام التاريخ والوقت .FromOADate.

نصائح أخرى

إذا قمت بتعيين الوقت / التاريخ مع قيمة ميلي ثانية واحدة في Excel يدويا، فهل الحفاظ عليه؟ أنا لا أعرف عن نموذج كائن داخلي Excel ولكن من الممكن تصور أنه فقط لا يدعم ميلي ثانية.

وتحرير: حسنا، الآن نحن نعلم أن فشل مجموعة (قد تفشل الحصول أيضا، بطبيعة الحال) ... هل يمكن أن محاولة وضع على أنها ضعف بعد تحويله عبر <لأ href = "HTTP: // MSDN. microsoft.com/en-us/library/system.datetime.tooadate.aspx "يختلط =" نوفولو noreferrer "> DateTime.ToOADate () . أنا لا أقول أنا عقد من كثير أمل، ولكن الامر يستحق المحاولة ...

وانها على الارجح بسبب المشكلة الموضحة في هذه KB المقالة .

في هذه الحالة، وتحديد الملكية VALUE2 يجب أن تعمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top