[Excel] إيقاف إكسيل من تغيير محتويات الخلية، من أي وقت مضى


Answers

آسف لإحياء هذا الموضوع القديم، ولكن إذا وجد أي شخص آخر هذا قد يكون من المساعدة.

كان لي هذه المسألة نفسها. عمود في قاعدة بياناتنا يحتوي على أرقام مثل:

111206،1 111206،2 .. .. 111206،10 111206،11

وتواريخ أيضا في شكل غريب. ويكفي أن أقول أنه هو بيتا الرئيسية للصق ذلك في التفوق. أنا أيضا فعلت أشياء مثل الصراخ على الشاشة ولكن مايكروسوفت لا تزال يبدو للحفاظ على تجاهل هذا الإدخال المستخدم مفيدة جدا. (على ملاحظة أخرى: أنا التصويت لتسجيل لوحة المفاتيح بعد أفترتوش - إذا كنت أصاب إنتر مع أكثر من 80٪ من القوة القصوى، فإنه يجب تخطي أي حوار تأكيد وتنفيذ "فقط f *! @ # $ دو إيت" واسطة من الأمر المختار ، وهذا يعني انفراجة كبيرة في الصداقة الخارق إمهو.)

على أي حال، أشار لي زميل في "لصق خاص" الخيار. انقر بزر الماوس الأيمن في خلية إكسيل، واختر لصق خاص واختر نص. و بريستو.

نادرا ما كنت أشعر بأنني مدهشة :)

Question

أعمل مع أرقام البطاقات، مثل بطاقة الائتمان وأرقام الهوية. نحن لا نفعل أي حسابات مع أرقام البطاقات، من الواضح. فهي "نص".

أنا تنسيقها كنص، وأنا اكتب لهم مثل النص. أعرف كيف يعمل. إكسل لا يهمني. أرقام أرقام 16 أرقام الحصول على أرقامهم الأخيرة تحولت إلى الصفر، وتغيرت إلى التدوين العلمي، الأشياء الغبية التي لم أكن أقول إكسيل القيام به.

أنا بحاجة إلى القيام بأشياء مثل البحث عن / إزالة المسافات من الخلايا في الملفات التي تم تحميلها من موقعنا على شبكة الإنترنت ناقصة حاليا. النظام يرسل لي الملفات مع أرقام 16 أرقام، وخلايا منسقة كنص، ولكن بسبب البق هناك مسافات في النهاية. أفعل البحث / إزالة جميع المساحات ويتم تحويل جميع أرقام بطاقتي إلى تدوين العلمية وتحول الرقم الأخير إلى 0. هم النص، يتم تنسيقها كنص، صرخت على الشاشة أنها نص، لماذا يرفض إكسل للاعتراف بأنها نص؟ (أود أن تجد بدلا من ذلك وسيلة لوقف عمل إكسيل من إيجاد وسيلة ليقول المبرمجين لدينا لوضع الفاصلة العليا في كل خلية)

كيف يمكنني جعله بحيث إكسيل فقط ستوبس تفعل أي شيء لم أكن أقول ذلك للقيام؟ أو على الأقل وقفه من فعل أي شيء إلى أرقام أنها لا تحب. ربما أستطيع أن أكتب ماكرو لأنه كلما يكتشف "أوه يجب أن تغيير هذا الرقم إلى شيء مختلف!" سوف تجعل من تنسيق تلك الخلية إلى نص ألف مرة بدلا من ذلك.

تعطيني خطأ عندما أحاول حساب مع عدد أكبر من 15 رقما، وجعل جهاز الكمبيوتر الخاص بي تنفجر بعنف، وهذا أمر جيد. مجرد التوقف عن تغيير الأرقام.

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




إما

  • تنسيق الخلايا كنص (تنسيق، خلايا، نص)
  • البادئة الرقم مع '(اقتباس واحد)

كلا العمل على حد سواء جيدا بالنسبة لي.

تحرير: اختبرت استبدال المساحات من قبل أي شيء على تلك "أرقام النص"، والواقع أنها تتحول إلى أرقام.

جرب غوغلينغ ل "ريجكس إكسيل". هناك طرق لاستخدام التعبيرات العادية في إكسيل، والتي من شأنها أن تسمح لك بسهولة جدا بادئة أرقام بطاقة الائتمان الخاصة بك عن طريق اقتباس واحد.
Morefunc




لقد كان لدي هذه المشكلة واللصق في الاقتباس واحد يظهر الاقتباس والتنسيق كما نص لا يعمل لأنه يغير القيم كما أنها لصق في. ما عملت بالنسبة لي هو لصق في مع الاقتباس واحد قبل كل شيء بحيث يظهر الاقتباس واحد ثم القيام استبدال جميع استبدال كل يقتبس واحد مع يقتبس واحد. يبدو غريبا ولكن هذا هو أسرع طريقة بالنسبة لي للتعامل مع لصق البيانات في إكسيل 2007.




لقد وجدت طريقة للحفاظ على الأرقام في شكل النص حتى عند لصق خلايا متعددة. أنا أستخدم إكسيل 2010.

  1. حدد نطاق الخلايا واستخدم التنسيق - مخصص. تطبيق (رمز "أت") @ كما شكل.
  2. حدد قيمك من الملف المصدر.
  3. انقر بزر الماوس الأيمن فوق النطاق للصق (أو أعلى الزاوية اليسرى فقط)، ضمن خيارات اللصق، حدد مطابقة تنسيق الوجهة.

أنا أوافق أنه غبي بشكل لا يصدق لدينا للقفز من خلال الأطواق الآن للقيام بأشياء كثيرة في المكتب الذي كان ليكون أسهل.




بناء على شيء قرأته الرموز البريدية التي استخدمت تنسيق مخصص من 00000-0000، حاولت إنشاء تنسيق مخصص من 0000000000000000. تحويل العلامة العلمية مرة أخرى إلى 16 رقما.




في ما يلي ماكرو قد يفعل ما تريد

Sub SafeFindAndReplace()

    Dim rCell As Range

    For Each rCell In ActiveSheet.UsedRange.Cells
        If InStr(1, rCell.Text, " ", vbBinaryCompare) > 0 Then
            If rCell.NumberFormat = "@" Then
                rCell.Value2 = CStr(Replace(rCell.Text, " ", ""))
            End If
        End If
    Next rCell

End Sub

تأكد من تجربتها على نسخة من بياناتك، وليس العناصر الحية، للتأكد من أنها تعمل.

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

Sub SafeFindAndReplaceSelection()

    Dim rCell As Range

    If TypeName(Selection) = "Range" Then
        For Each rCell In Selection.Cells
            If InStr(1, rCell.Text, " ", vbBinaryCompare) > 0 Then
                If rCell.NumberFormat = "@" Then
                    rCell.Value2 = CStr(Replace(rCell.Text, " ", ""))
                End If
            End If
        Next rCell
    End If

End Sub



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

ثم لاحظت خدعة هذا:

  • تنسيق العمود أو تريد أن يكون الأرقام كنص.
  • حدد فقط الخلية الأولى وليس العمود كله أو المنطقة التي تريد البيانات - كان هذا خطأ بلدي في كل وقت، وأنا دائما تركت المنطقة بأكملها المحدد.
  • ثم انقر بزر الماوس الأيمن وحدد لصق كنص .

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




إذا كنت تحاول نسخ البيانات من مكان آخر جرب لصق خاص واختر كنص. وينبغي أن تحتفظ بصيغتها الأصلية




Links