كيفية الحصول على آخر تواجد خلية في Excel 2007

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

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا أعمل مع C ++ غير المدارة وإكسل 2007. أنا باستخدام استدعاء Excel4 API للحصول على مجموعة من الخلايا المحددة من قبل المستخدم.

وعندما يختار المستخدم ما أسميه مجموعة "المشترك"، هذه الدعوة إرجاع مجموعة من هذا القبيل. "R1C1: R4C3"، وهو بالضبط الشكل الذي أحتاج للقيام بعمليات أخرى في طلبي

ولكن، عندما قرر المستخدم لتحديد الأعمدة كلها، ثم استدعاء API هذا بإرجاع مجموعة فقط مع الأعمدة، وشيء من هذا القبيل "C1: C3"، وهو بطبيعة الحال مجموعة اكسل صحيح، ولكنه يعني لي أن لدي لتعديله بحيث يبدو مثل مجموعة أعلاه؛ وبعبارة أخرى لا بد لي من إضافته تتراوح الصفوف يدويا.

وهكذا أود أن أغتنم هذه مجموعة "C1C3" وتغيير لها أن تكون. "R1C1: R65534C3"

ولعل في هذه النقطة هل لاحظت بالفعل مشكلتي، وكما ترون أنا بجد الترميز الصفوف تتراوح أن تكون أرقام كحد أقصى من الصفوف التي يدعمها برنامج Excel 2003 (يعمل التطبيق أيضا مع هذا الإصدار من التفوق).

وهذا بالطبع ليس ما أنا أبحث عن، لأنه بمجرد أن أحصل على النطاق المحدد، وقراءة المعلومات في هذا النطاق واستخدام تلك المعلومات لجعل الاستعلام إلى الخادم، وذلك تخيل أن المستخدم إدخال البيانات فقط حتى التوالي 534 و لا يزال الاستعلام الخاص بي وسوف يكون 65000 الصفوف مع أي شيء.

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

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

المحلول

ووAPI إكسل 4؟ حقا؟

وهناك من xlcSelectEnd القيادة التي يمكنك استخدامها للانتقال إلى الخلية الأخيرة مع النص الذي تم إدخاله في ذلك في أي اتجاه من خلية معينة.

نصائح أخرى

وحاول صب range.selection إلى كائن المدى.

تحليل المنطقة احصل على آخر استخدام صف

     Excel.ApplicationClass app = new Excel.ApplicationClass();
        Excel.Workbook workBook = app.Workbooks.Open(_PathFile,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value,
                 System.Reflection.Missing.Value);
        // Get the active worksheet using sheet name or active sheet
        Excel.Worksheet workSheet = (Excel.Worksheet)workBook.ActiveSheet;
        // Find the last real row
        int _InLastRow = workSheet.Cells.Find("*",System.Reflection.Missing.Value,
            System.Reflection.Missing.Value, System.Reflection.Missing.Value, Excel.XlSearchOrder.xlByRows,Excel.XlSearchDirection.xlPrevious, false,System.Reflection.Missing.Value,System.Reflection.Missing.Value).Row;
#endregion
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top