Note: The other languages of the website are Google-translated. Back to English

كيفية نقل صف بأكمله إلى ورقة أخرى بناءً على قيمة الخلية في إكسيل؟

لنقل صف بأكمله إلى ورقة أخرى بناءً على قيمة الخلية ، ستساعدك هذه المقالة.

انقل الصف بأكمله إلى ورقة أخرى بناءً على قيمة الخلية برمز VBA
انقل صفًا بأكمله إلى ورقة أخرى بناءً على قيمة الخلية باستخدام Kutools for Excel


انقل الصف بأكمله إلى ورقة أخرى بناءً على قيمة الخلية برمز VBA

كما هو موضح أدناه ، تحتاج إلى نقل الصف بأكمله من Sheet1 إلى Sheet2 إذا كانت كلمة معينة "Done" موجودة في العمود C. يمكنك تجربة رمز VBA التالي.

1. صحافة قديم+ F11 مفاتيح في نفس الوقت لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. في نافذة ميكروسوفت فيسوال باسيك للتطبيقات ، انقر فوق إدراج > وحدة. ثم انسخ والصق رمز فبا أدناه في النافذة.

VBA code 1: Move entire row to another sheet based on cell value

Sub Cheezy()
'Updated by Kutools for Excel 2017/8/28
    Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("Sheet1").UsedRange.Rows.Count
    J = Worksheets("Sheet2").UsedRange.Rows.Count
    If J = 1 Then
       If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = "Done" Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
            xRg(K).EntireRow.Delete
            If CStr(xRg(K).Value) = "Done" Then
                K = K - 1
            End If
            J = J + 1
        End If
    Next
    Application.ScreenUpdating = True
End Sub

ملاحظة: في الكود ، Sheet1 هي ورقة العمل التي تحتوي على الصف الذي تريد نقله. و Sheet2 هي ورقة العمل الوجهة التي ستحدد فيها الصف. "ج: ج"هو العمود الذي يحتوي على قيمة معينة ، وكلمة"تم. "هي القيمة المحددة التي ستنقل الصف بناءً عليها. يرجى تغييرها بناءً على احتياجاتك.

3. اضغط على F5 مفتاح لتشغيل التعليمات البرمجية ، ثم سيتم نقل الصف الذي يفي بالمعايير في الورقة 1 إلى الورقة 2 على الفور.

ملاحظة: سيؤدي رمز فبا أعلاه إلى حذف الصفوف من البيانات الأصلية بعد الانتقال إلى ورقة عمل محددة. إذا كنت تريد فقط نسخ الصفوف بناءً على قيمة الخلية بدلاً من حذفها. يرجى تطبيق كود VBA 2 أدناه.

VBA code 2: Copy entire row to another sheet based on cell value

Sub MoveRowBasedOnCellValue()
'Updated by Extendoffice 2017/11/10
    Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("Sheet1").UsedRange.Rows.Count
    J = Worksheets("Sheet2").UsedRange.Rows.Count
    If J = 1 Then
    If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = "Done" Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
            J = J + 1
        End If
    Next
    Application.ScreenUpdating = True
End Sub

انقل صفًا بأكمله إلى ورقة أخرى بناءً على قيمة الخلية باستخدام Kutools for Excel

إذا كنت مبتدئًا في كود VBA. هنا أقدم ملف حدد خلايا معينة فائدة كوتولس ل إكسيل. باستخدام هذه الأداة المساعدة ، يمكنك بسهولة تحديد جميع الصفوف بناءً على قيمة خلية معينة أو قيم خلية مختلفة في ورقة العمل ، ونسخ الصفوف المحددة إلى ورقة العمل الوجهة حسب حاجتك. الرجاء القيام بما يلي.

قبل التطبيق كوتولس ل إكسيلالرجاء قم بتنزيله وتثبيته أولاً.

1. حدد قائمة الأعمدة التي تحتوي على قيمة الخلية التي ستنقل الصفوف بناءً عليها ، ثم انقر فوق كوتولس > اختار > حدد خلايا معينة. انظر لقطة الشاشة:

2. في الافتتاح حدد خلايا معينة مربع الحوار، اختر الصف بأكمله في ال نوع التحديد القسم، حدد يساوي في ال نوع خاص أو معين القائمة المنسدلة ، أدخل قيمة الخلية في مربع النص ، ثم انقر فوق OK .

آخر حدد خلايا معينة ينبثق مربع الحوار لإظهار عدد الصفوف المحددة ، وفي الوقت نفسه ، تم تحديد جميع الصفوف التي تحتوي على القيمة المحددة في العمود المحدد. انظر لقطة الشاشة:

3. اضغط على CTRL + C لنسخ الصفوف المحددة ، ثم لصقها في ورقة العمل الوجهة التي تريدها.

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

  إذا كنت ترغب في الحصول على نسخة تجريبية مجانية (30-يوم) من هذه الأداة ، الرجاء الضغط لتنزيلهثم انتقل لتطبيق العملية حسب الخطوات المذكورة أعلاه.


مقالات ذات صلة:


أفضل أدوات إنتاجية المكتب

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2021 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (299)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، لقد وجدت هذا الدليل الخاص مفيدًا حقًا على الآخرين الذين رأيتهم. شكرًا لك! المشكلة التي أواجهها هي أنه إذا قمت بتغيير القيمة المرغوبة إلى "مغلق" ، يجب أن أقوم بتشغيل F5 لتحريك الصف. أود أن يتحرك تلقائيًا. أنا جديد في برنامج Excel ، لذا فإن مساعدتك محل تقدير كبير. Sub Cheezy () Dim xRg كنطاق خافت xCell كنطاق خافت I خافت طويل J بطول I = أوراق عمل ("ECR Incident Tracker"). UsedRange.Rows.Count J = أوراق عمل ("مشاكل تم حلها"). UsedRange.Rows. عد إذا كان J = 1 ثم إذا كان Application.WorksheetFunction.CountA (أوراق العمل ("المشكلات التي تم حلها"). UsedRange) = 0 ثم J = 0 End If Set xRg = أوراق العمل ("ECR Incident Tracker"). النطاق ("B1: B" & I) عند الخطأ ، استأنف التطبيق التالي .creenUpdating = خطأ لكل xCell في xRg If CStr (xCell.Value) = "مغلق" ثم xCell.EntireRow.Copy الوجهة: = أوراق العمل ("المشكلات التي تم حلها"). النطاق ("A" & J + 1) xCell.EntireRow.Delete J = J + 1 End If Next Application.ScreenUpdating = True End Sub
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، أحاول أتمتة نقل الخلايا دون الحاجة إلى فتح الوحدة والضغط على F5 أيضًا. هل سبق لك حل هذا السؤال؟ شكرا لكم مقدما!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
قدمت كريستال معلومات حول كيفية القيام بذلك اليوم - ألق نظرة على الصفحة الأولى من هذا الموضوع لترى ردها. يقوم تلقائيًا بنقل الصف الذي يحتوي على تاريخ اليوم في عمود (L في حالتي) إلى ورقة عمل مختلفة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أقوم بتشغيل هذا الرمز وأحاول نقل صف بناءً على تاريخ اليوم الظاهر في العمود I - لقد غيرت النطاق ("B1: B" & I) لقراءة النطاق (I1: I "& I). لقد تغيرت" تم "في المثال الخاص بك إلى التاريخ. ومع ذلك ، عندما يظهر تاريخ اليوم في أي مكان في الصف ، وليس فقط في العمود I كما هو مطلوب ، ينتقل الصف إلى ورقة العمل البديلة. أي فكرة عن سبب حدوث ذلك وكيف يمكنني نقل الصف فقط عندما يكون تاريخ اليوم في العمود I ، بغض النظر عما إذا كان تاريخ اليوم يظهر في أعمدة أخرى؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إذا كنت أرغب في الحصول على العديد من القيم والعديد من الأوراق لنقل الصف الخاص بي إليها ، فسيتعين علي كتابة الكود بالكامل مرة أخرى بقيمة مختلفة لتلك الخلية؟ بمعنى ، إذا وضعت NA في خلية واحدة ، فستنتقل إلى ورقة Na ، وإذا وضعت W # فسوف تنتقل إلى ورقة الأرقام الخاطئة وما إلى ذلك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، كان هذا مفيدًا جدًا. هل هناك طريقة للقيام بذلك دون نقل صف البيانات إلى الورقة الثانية ، ولكن بدلاً من نسخها؟ لذلك ستبقى البيانات على كلا الصحائف؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، كان الرمز مفيدًا للغاية ، ولكن بدلاً من نسخ الصف بأكمله ، أطلب نقل مجموعة محددة من الصف إلى الورقة التالية. كيف يمكنني تحديد نطاق بدلاً من صف كامل Sub Cheezy () Dim xRg كنطاق Dim xCell كنطاق خافت I خافت طويل J بطول I = أوراق عمل ("Sheet1"). UsedRange.Rows.Count J = أوراق عمل (" Sheet2 "). UsedRange.Rows.Count If J = 1 ثم If Application.WorksheetFunction.CountA (Worksheets (" Sheet2 "). UsedRange) = 0 ثم J = 0 End If Set xRg = Worksheets (" Sheet1 "). Range ( "C1: C" & I) عند الخطأ ، استأنف التطبيق التالي.الصف بأكمله. وجهة النسخ: = أوراق العمل ("ورقة 2"). النطاق ("A" & J + 1) J = J + 1 End If Next Application.ScreenUpdating = True End Sub
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ماذا سيكون الرمز إذا كنت أرغب في نسخ صفوف (خلايا محددة) في ورقة أخرى إلى خلايا معينة؟ ولكن يعتمد أيضًا على مثال قيمة: سلسلة صور المنتج الملونة خلاط أبيض 2 whiteblender2 black juicer 3 blackjuicer3 red tv 1 redtv1 green iron 4 greeniron4 أود نسخ السلسلة إلى ورقة أخرى لكن الرقم الموجود في عمود الصور يوضح عدد المرات التي يجب نسخها (لذلك ، في هذه الحالة ، سلسلة الخلاط يجب نسخها في صفين
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، جزء رائع من التعليمات البرمجية ، يعمل بشكل جيد جدًا. كيف يمكن تغيير هذا الرمز لنقل الصفوف من جدول إلى جدول آخر ، بدلاً من نقل ورقة إلى ورقة أخرى؟ شكرا جزيلا !
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، أحاول استخدام الكود ولكني أتلقى خطأً في بناء الجملة على Dim xCell As Range. هل يمكنك المساعدة من فضلك؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Sub Cheezy () Dim xRg كنطاق خافت xCell كنطاق خافت I خافت طويل J بطول I = أوراق عمل ("Sheet1"). UsedRange.Rows.Count J = أوراق عمل ("Sheet2"). UsedRange.Rows.Count إذا J = 1 ثم If Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 ثم J = 0 End If Set xRg = Worksheets ("Sheet1"). Range ("C1: C" & I) On Error Resume Next Application.ScreenUpdating = خطأ لكل xCell في xRg If CStr (xCell.Value) = "Done" ثم xCell.EntireRow.Copy Destination: = Worksheets ("Sheet2"). Range ("A" & J + 1) xCell. EntireRow.Delete J = J + 1 End If Next Application.ScreenUpdating = True End Sub كيف يمكن إضافة ورقة عمل ثانية لنقل الصفوف إلى الورقة 2؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ما الذي يجب علي إدخاله إذا أردت تضمين أي تاريخ كقيمة خاصة بي؟ إذن ، يبقى الصف على الورقة 1 إذا لم يكن له تاريخ ، وينتقل إلى الورقة 2 إذا كان كذلك؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
[اقتباس] مرحبًا ، كان هذا مفيدًا جدًا. هل هناك طريقة للقيام بذلك دون نقل صف البيانات إلى الورقة الثانية ، ولكن بدلاً من نسخها؟ إذن ستبقى البيانات على كلا الصحائف؟بواسطة مادي[/ اقتباس] هل قام أي شخص بحل هذا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
قم بإزالة هذا "xCell.EntireRow.Delete" من التعليمات البرمجية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عندما أحذف سطر التعليمات البرمجية هذا وقمت بتشغيل الماكرو مرة أخرى ، يتجمد Excel. لماذا وكيف أصلحه ؟؟ أريد أن تكون البيانات موجودة في ورقتي العمل وألا يتم حذفها من الأصل. TIA
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل يوجد جواب لهذا؟ المنجم يتجمد كذلك أود نسخ الصف ولكن لا أحذفه
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يوم جيد،
يمكن أن يساعدك رمز VBA أدناه في نسخ الصفوف فقط بدلاً من حذفها.

سوبر تشيز ()
خافت xRg كمدى
خافت xCell كمجموعة
أنا خافت وطويلة
خافت J بطول
خافت K وطولها
I = أوراق العمل ("Sheet1"). UsedRange.Rows.Count
J = أوراق العمل ("Sheet2"). UsedRange.Rows.Count
إذا كان J = 1 ثم
If Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 ثم J = 0
إنهاء حالة
تعيين xRg = أوراق العمل ("Sheet1"). النطاق ("C1: C" & I)
على خطأ استئناف التالي
Application.ScreenUpdating = خطأ
من أجل K = 1 إلى xRg.Count
إذا كان CStr (xRg (K) .Value) = "تم" ثم
xRg (K) .EntireRow.Copy Destination: = أوراق العمل ("Sheet2"). النطاق ("A" & J + 1)
ي = ي + 1
إنهاء حالة
التالى
Application.ScreenUpdating = ترو
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، أنا أبحث عن شكل مختلف عن هذا. أحتاج إلى تشغيل البرنامج النصي بشكل مستمر ، أو أفشل في ذلك كلما تغيرت القيمة في هذا الحقل المحدد. يعمل الكود نفسه ولكن يجب تشغيله بشكل مستقل. أريد أن يكون آليًا. يمكن لأي شخص أن يساعد؟

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

إذا كنت بحاجة إلى تشغيل البرنامج النصي تلقائيًا عند تغيير الخلايا في هذا الحقل ، فيمكن أن يساعدك رمز VBA أدناه. يرجى النقر بزر الماوس الأيمن فوق علامة التبويب الحالية (الورقة التي تحتوي على صفوف ستنقلها تلقائيًا) ، ثم حدد عرض الرمز من قائمة السياق. ثم انسخ والصق برنامج VBA النصي أدناه في نافذة التعليمات البرمجية.

ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)

خافت xCell كمجموعة

أنا خافت وطويلة
على خطأ استئناف التالي

Application.ScreenUpdating = خطأ

تعيين xCell = الهدف (1)
إذا كانت xCell.Value = "تم" ثم
I = أوراق العمل ("Sheet2"). UsedRange.Rows.Count
إذا كنت = 1 ثم

If Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 ثم I = 0

إنهاء حالة

xCell.EntireRow.Copy Worksheets ("Sheet2"). Range ("A" & I + 1)

xCell.EntireRow.Delete
إنهاء حالة

Application.ScreenUpdating = ترو

نهاية الفرعية


بالنسبة إلى سؤالك الثاني ، هل تقصد نسخ عدة خلايا بدلاً من الصف بأكمله؟ أو هل يمكنك تقديم لقطة شاشة لسؤالك؟ شكرًا لك!

مع أطيب التحيات ، كريستال
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كريستال،


مساعدتك مطلوبة أكثر من ذلك :)



كيف يمكننا إضافة طبقة أخرى هنا ، على سبيل المثال أود نقل مكتمل بجانب تم:


ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)

خافت xCell كمجموعة

أنا خافت وطويلة
على خطأ استئناف التالي

Application.ScreenUpdating = خطأ

تعيين xCell = الهدف (1)
إذا كانت xCell.Value = "تم" ثم
I = أوراق العمل ("Sheet2"). UsedRange.Rows.Count
إذا كنت = 1 ثم

If Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 ثم I = 0

إنهاء حالة

xCell.EntireRow.Copy Worksheets ("Sheet2"). Range ("A" & I + 1)

xCell.EntireRow.Delete
إنهاء حالة

Application.ScreenUpdating = ترو

نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا كريستال
هذه هي المعلومات الأكثر فائدة التي وجدتها على الويب وهذا الماكرو يفعل ما أريد. لكنني أقوم بنقل الصفوف من جدول إلى جدول آخر - وباستخدام هذا الماكرو ، تتحرك المعلومات إلى أول سطر حر خارج الجدول ، وليس السطر المجاني التالي في الجدول؟ هل يمكنك المساعدة؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أقوم بتشغيل هذا الرمز وأحاول نقل صف بناءً على تاريخ اليوم الظاهر في العمود I - لقد غيرت النطاق ("B1: B" & I) لقراءة النطاق (I1: I "& I). لقد تغيرت" تم "في المثال الخاص بك إلى التاريخ. ومع ذلك ، عندما يظهر تاريخ اليوم في أي مكان في الصف ، وليس فقط في العمود I كما هو مطلوب ، ينتقل الصف إلى ورقة العمل البديلة. أي فكرة عن سبب حدوث ذلك وكيف يمكنني نقل الصف فقط عندما يكون تاريخ اليوم في العمود I ، بغض النظر عما إذا كان تاريخ اليوم يظهر في أعمدة أخرى؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي داوود،

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


لست واضحًا ما الذي تقصده عندما تقول أن الكود وتنسيقات تاريخ جدول البيانات يجب أن تتطابق - أنا لست خبيرًا في VB ، فأنا على مستوى مبتدئ. في جدول البيانات الخاص بي ، أدخل تاريخ اليوم في العمود F كتاريخ دخول الصف ، بالتنسيق ctrl +:. أدخل تاريخ انتهاء الصلاحية في العمود "I" بالتنسيق mm / dd / yyyy. ومع ذلك ، فإن هذا يسبب مشاكل عند إجراء إدخال جديد في صف وإدخال تاريخ اليوم في العمود F لأنه بمجرد إدخاله ، يتم نقل الصف إلى ورقة العمل الجديدة. بالإضافة إلى ذلك ، لا يظهر الرمز الإضافي الذي يتم تشغيله عند فتح المصنف للجري بدون أن أجبرها على ذلك. آسف لما قد يكون بالنسبة لك مشاكل تافهة للغاية ولكن لا يمكنني الحصول على ما أسمعه حول هذه القضايا. سيكون موضع تقدير أي مساعدة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي داوود،

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

مع أطيب التحيات ، كريستال
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كريستال ، هذه هي أوراق العمل المعنية. سترى في الكود المنسوخ أنني أبحث عن "حتى" تاريخ اليوم في العمود L وإذا كان "يصل إلى" ويتضمن تاريخ اليوم في هذا العمود ، فأنا أريد نقل الصف الذي يحتوي على هذا التاريخ إلى ورقة عمل جديدة. حاليًا ، عندما أدخل تاريخ اليوم في أي مكان في الصف (على سبيل المثال العمود F إذا تم إصدار طلب اليوم) ، فإنه ينقل الصف بالكامل تلقائيًا إلى جدول البيانات المؤرشف. عادةً ما أدخل تاريخ اليوم باستخدام ctrl +: تركيبة ، عادةً في العمود F.
بالإضافة إلى ذلك ، أود أن يحدث هذا التحرك عندما أفتح المصنف. أحتاج حاليًا إلى الذهاب لإظهار الرمز ثم الضغط على F5. أي نصيحة حول كيفية القيام بذلك سيكون موضع ترحيب.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لسوء الحظ ، لن يتم تحميل المصنف الذي تم تمكين الماكرو الخاص بي به لأنه يشير إلى أن التنسيق غير مدعوم. هذه موجودة في Excel 2016
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي داوود،

يمكن أن يساعدك رمز VBA التالي في تحقيق ذلك.

مصنف فرعي خاص_ فتح ()
خافت xRg كمدى
خافت xCell كمجموعة
أنا خافت وطويلة
خافت J بطول
I = أوراق العمل ("فرص الواحة الحالية"). UsedRange.Rows.Count
J = أوراق العمل ("فرص الواحة المؤرشفة"). UsedRange.Rows.Count
إذا كان J = 1 ثم
If Application.WorksheetFunction.CountA (أوراق العمل ("ARCHIVED OASIS OPPORTUNITIES"). UsedRange) = 0 ثم J = 0
إنهاء حالة
قم بتعيين xRg = أوراق العمل ("فرص الواحة الحالية"). النطاق ("L1: L" & I)
على خطأ استئناف التالي
Application.ScreenUpdating = خطأ
لكل xCell في xRg
إذا كان CStr (xCell.Value) = التاريخ ثم
xCell.EntireRow.Copy الوجهة: = أوراق العمل ("فرص الواحة المؤرشفة"). النطاق ("A" & J + 1)
xCell.EntireRow.Delete
ي = ي + 1
إنهاء حالة
التالى
نهاية الفرعية

الملاحظات:
1. تحتاج إلى وضع برنامج VBA النصي في نافذة كود ThisWorkbook ؛
2. يجب حفظ المصنف الخاص بك كمصنف Excel Macro-Enabled.

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

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

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

إذا لم أفتح ورقة العمل الخاصة بي لبضعة أيام وكان التاريخ الذي تم إدخاله في العمود L قد مر الآن ، أي أن التاريخ في خلية في العمود L هو 11 سبتمبر 2017 ولكن لم أفتح ورقة العمل الخاصة بي حتى 13 سبتمبر ، سأفعل مثل جميع الإدخالات في العمود L ليتم فحصها لكل تاريخ حتى تاريخ اليوم ، ثم انقل الصفوف المقابلة إلى الورقة الجديدة. حاليًا مع الكود الذي قدمته بلطف ، يتم نقل الصفوف التي تحتوي على التاريخ الحالي في العمود L فقط إلى الورقة الجديدة تاركة خلفها تلك التي لها تاريخ سابق في العمود L ، والتي أقوم حاليًا بنقلها يدويًا إلى الورقة الجديدة. شكرا لمساعدتك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي داوود،



فهمت وجهة نظرك. يرجى محاولة البرنامج النصي أدناه VBA. عند فتح المصنف ، سيتم نقل جميع الصفوف ذات التواريخ حتى تاريخ اليوم في العمود L إلى ورقة محددة جديدة.



مصنف فرعي خاص_ فتح ()
خافت xRg كمدى
خافت xRgRtn كنطاق
خافت xCell كمجموعة
خافت xLastRow طويل
أنا خافت وطويلة
خافت J بطول
على خطأ استئناف التالي
xLastRow = أوراق العمل ("فرص الواحة الحالية"). UsedRange.Rows.Count
إذا كان xLastRow <1 ، فاخرج من Sub
J = أوراق العمل ("فرص الواحة المؤرشفة"). UsedRange.Rows.Count
إذا كان J = 1 ثم
If Application.WorksheetFunction.CountA (أوراق العمل ("ARCHIVED OASIS OPPORTUNITIES"). UsedRange) = 0 ثم J = 0
إنهاء حالة
مجموعة xRg = أوراق العمل ("فرص الواحة الحالية"). النطاق ("L1: L" & xLastRow)
لأني = 2 إلى xLastRow
إذا كانت xRg (I) .Value> Date ثم اخرج من Sub
إذا كانت xRg (I) .Value <= التاريخ ثم
xRg (I) .EntireRow.Copy Destination: = أوراق العمل ("ARCHIVED OASIS OPPORTUNITIES"). النطاق ("A" & J + 1)
xRg (I). كامل الصف حذف
ي = ي + 1
أنا = أنا - 1
إنهاء حالة
التالى
نهاية الفرعية

تحتاج إلى وضع برنامج VBA النصي في نافذة التعليمات البرمجية ThisWorkbook وحفظ المصنف كمصنف Excel Macro-Enabled.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا لك كريستال ، هذا يعمل بشكل جيد.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كريستال ، لقد كنت متسرعًا بعض الشيء في الرد على أن الكود يعمل. فتحت كتيب عملي اليوم ولا تزال الصفوف التي تحتوي على إدخالات التاريخ السابق في العمود L الخلية في "ورقة عمل فرص الواحة الحالية" ولم تنتقل إلى "ورقة عمل الواحة المؤرشفة" كما هو متوقع. أي أفكار لماذا سيكون هذا هو الحال؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
توجد الخلايا المميزة في العمود L فيما يتعلق بالسؤال أعلاه وهي المعايير (حتى تاريخ اليوم) لنقل الصف إلى ورقة العمل الجديدة. آمل أن تساعد هذه الصورة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذه أيضًا نسخة من نافذة VBA ذات الصلة بما ورد أعلاه.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كريستال ، لقد كنت متسرعًا بعض الشيء في الرد على أن الكود يعمل. فتحت كتيب عملي اليوم ولا تزال الصفوف التي تحتوي على إدخالات التاريخ السابق في العمود L الخلية في "ورقة عمل فرص الواحة الحالية" ولم تنتقل إلى "ورقة عمل الواحة المؤرشفة" كما هو متوقع. أي أفكار لماذا سيكون هذا هو الحال؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كريستال،

نظرًا لأنه لا يمكنني تحميل المصنف الخاص بي ، فسأعيد إنتاج الصفوف والأعمدة هنا

ABCDEFGHIJKL
# اكتب استجواب طلب تقديم العروض ، تعديل # أسئلة تاريخ الإصدار ، موقع تسليم العميل ، موعد تسليم المشروع

1 SS SB 1234567 1 09/6/17 دبابة محرك بدون اسم مكان الجيش 09/10/17

باستخدام الكود أدناه ، أريده أن ينقل صفًا بأكمله إلى ورقة عمل جديدة عندما يصل العمود L إلى تاريخ اليوم. أيضًا إذا لم أكمل ورقة العمل لعدد من الأيام ، أود أن تستخدم البحث "حتى تاريخ اليوم" في العمود L للقيام بالمثل. أرغب أيضًا في القيام بذلك تلقائيًا عندما أفتح المصنف إن أمكن. حاليًا ، إذا أدخلت تاريخ اليوم في أي خلية في الصف ، على سبيل المثال العمود F عند إدخال البيانات ، ينتقل الصف بأكمله إلى ورقة عمل الأرشيف. (باستخدام Excel 2016)

[رمز الوحدة 1]

Sub DaveV ()

خافت xRg كمدى

خافت xCell كمجموعة

أنا خافت وطويلة

خافت J بطول

I = أوراق العمل ("فرص الواحة الحالية"). UsedRange.Rows.Count

J = أوراق العمل ("فرص الواحة المؤرشفة"). UsedRange.Rows.Count

إذا كان J = 1 ثم
If Application.WorksheetFunction.CountA (أوراق العمل ("ARCHIVED OASIS OPPORTUNITIES"). UsedRange) = 0 ثم J = 0

إنهاء حالة

قم بتعيين xRg = أوراق العمل ("فرص الواحة الحالية"). النطاق ("L1: L" & I)

على خطأ استئناف التالي

Application.ScreenUpdating = خطأ

لكل xCell في xRg

إذا كان CStr (xCell.Value) = التاريخ ثم

xCell.EntireRow.Copy الوجهة: = أوراق العمل ("فرص الواحة المؤرشفة"). النطاق ("A" & J + 1)
xCell.EntireRow.Delete

ي = ي + 1
إنهاء حالة

التالى
Application.ScreenUpdating = ترو

نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
[رمز الورقة 1]

ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
خافت xCell كمجموعة
أنا خافت وطويلة
على خطأ استئناف التالي
Application.ScreenUpdating = خطأ
تعيين xCell = الهدف (1)
إذا كانت xCell.Value = التاريخ بعد ذلك
I = أوراق العمل ("فرص الواحة المؤرشفة"). UsedRange.Rows.Count
إذا كنت = 1 ثم
إذا كان Application.WorksheetFunction.CountA (أوراق العمل ("ARCHIVED OASIS OPPORTUNITIES"). UsedRange) = 0 ثم I = 0 End If
xCell.EntireRow.Copy Worksheets ("ARCHIVED OASIS OPPORTUNITIES"). Range ("A" & I + 1)
xCell.EntireRow.Delete
إنهاء حالة
Application.ScreenUpdating = ترو
نهاية الفرعية

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

لنفترض أنك اكتشفت أن الصف 7 يحتوي على كلمة "تم" في العمود C ، لذلك تنسخها وتحذف الصف.
بمجرد حذف الصف ، سيكون الصف التالي في القائمة هو الصف 9 وليس 8 ، لأنه بمجرد إزالة السطر السابع ، أصبح محتوى السطر الثامن الآن في السطر 7 ، وارتفعت جميع الأسطر إلى صف واحد. لذلك كان من المفترض أن يكون الصف التالي المراد التحقق منه هو الصف رقم 8 ، ولكنه الآن يحتوي على البيانات التي كانت موجودة سابقًا في الصف رقم 7 ، لذلك في كل مرة تقوم فيها بحذف صف ، فأنت تتخطى بالفعل صفًا للتحقق !!!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي شاو ألون ،

شكرا لك على تعليقك. تم تحديث الكود مع تصحيح الخطأ. شكرا جزيلا لمساعدك.

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

سوبر تشيز ()
تم التحديث بواسطة Kutools لبرنامج Excel 2017/8/28
خافت xRg كمدى
خافت xCell كمجموعة
أنا خافت وطويلة
خافت J بطول
خافت K وطولها
I = أوراق العمل ("شراء FORCAST"). UsedRange.Rows.Count
J = أوراق العمل ("أرشيف الشراء"). UsedRange.Rows.Count
إذا كان J = 1 ثم
إذا كان Application.WorksheetFunction.CountA (أوراق العمل ("أرشيف الشراء"). UsedRange) = 0 ثم J = 0
إنهاء حالة
مجموعة xRg = أوراق العمل ("شراء FORCAST"). النطاق ("H3: H" & I)
على خطأ استئناف التالي
Application.ScreenUpdating = خطأ
من أجل K = 1 إلى xRg.Count
إذا كان CStr (xRg (K) .Value) = "نعم" إذن
xRg (K) .EntireRow.Copy الوجهة: = أوراق العمل ("أرشيف الشراء"). النطاق ("A" & J + 1)
xRg (K). كامل الصف حذف
إذا كان CStr (xRg (K) .Value) = "نعم" إذن
ك = ك - 1
إنهاء حالة
ي = ي + 1
إنهاء حالة
التالى
Application.ScreenUpdating = ترو
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا فريد،
في كل مرة تقوم فيها بتشغيل الكود ، يبحث الكود عن النطاق المحدد ، لذلك ينسخ نفس الصف مرارًا وتكرارًا لأنه لا يمكنه معرفة الصف الذي تم نسخه بالفعل. لتجنب نسخ نفس الصف بشكل متكرر ، يمكنك تشغيل الرمز تلقائيًا عند إدخال قيمة مطابقة في الخلية المحددة.
في ورقة العمل المسماة "شراء شراء" ، انقر بزر الماوس الأيمن فوق علامة تبويب الورقة وانقر عرض الرمز من قائمة السياق. ثم انسخ كود فبا التالي في نافذة الورقة (الرمز).

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updated by Kutools for Excel 20220830
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim K As Long
I = Worksheets("PURCHASE FORCAST").UsedRange.Rows.Count
J = Worksheets("Purchase Archive").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("Purchase Archive").UsedRange) = 0 Then J = 0
End If
Set xRg = Worksheets("PURCHASE FORCAST").Range("H3:H" & I)
On Error Resume Next
Application.ScreenUpdating = False
For K = 1 To xRg.Count
If CStr(xRg(K).Value) = "Yes" Then
xRg(K).EntireRow.Copy Destination:=Worksheets("Purchase Archive").Range("A" & J + 1)
xRg(K).EntireRow.Delete
If CStr(xRg(K).Value) = "Yes" Then
K = K - 1
End If
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل يمكن لأحد أن يساعدني في جعل هذا العمل؟ لقد حاولت تغيير الجزء الذي يجب أن يتطابق مع ملفي ، لكن هذا يحدث ولست متأكدًا مما أفعله.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
تقول أن الملف غير مدعوم عندما أحاول تحميل ملف Excel. آسف ... تكافح مع هذا اليوم.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أود المساعدة في مهمة مماثلة ، لكن مختلفة قليلاً. لدي 5 أعمدة من الأرقام ، حوالي 25000 لكل عمود ، كل عمود بالعنوان 1-5 ، أود نسخ الصف بأكمله إلى ورقة أخرى إذا كانت قيمة العمود 1 أكبر من الصفر ، أو العمود 2 أكبر من الصفر ، أو العمود 3 أقل من الصفر ، أو العمود 4 أكبر من خمسة أو العمود 5 أكبر من عمودين وما إلى ذلك. هل هذا ممكن؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
تحميل الصور لا يعمل ... آسف.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
الرجاء استخدام زر التحميل لهذا واحد.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لذا فإن الهدف هو معرفة ما إذا كان أي من الغازات قد تجاوز الحد الذي سأحدده في الصيغة ، يتم نسخ البطارخ بالكامل على ورقة جديدة.

شكرا جزيلا على أي مساعدة لك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
الصورة المرفقة
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي مايكل ،
ربما يمكنك حل هذه المشكلة باستخدام وظيفة Excel الإضافية. هنا أوصيك باستخدام الأداة المساعدة Select Specific Cells الخاصة بـ Kutools for Excel. باستخدام هذه الأداة المساعدة ، يمكنك بسهولة تحديد جميع الصفوف في نطاق معين إذا كانت قيمة العمود المحدد أكبر من أو أقل من الرقم. بعد تحديد جميع الصفوف المطلوبة ، يمكنك نسخها ولصقها يدويًا في ورقة عمل جديدة. انظر أدناه الصورة المرفقة.

يمكنك معرفة المزيد عن هذه الميزة باتباع الارتباط التشعبي أدناه.
https://www.extendoffice.com/product/kutools-for-excel/excel-select-specific-cells-rows.html
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرًا على هذه الصيغة ، لكن لدي مشكلة وهي عندما أريد نقل الصف إلى ورقة أخرى ، لا يحدث ذلك تلقائيًا. هل تستطيع أن تعطيني صيغة أخرى؟ لذلك كلما قمت بتغيير قيمة الخلية ، يتم نقلها تلقائيًا.


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

أرغب في إعداد هذا الماكرو ولكن مع وسيطتين. تمكنت من تشغيل الماكرو في ملفي بناءً على قيمة الخلايا في العمود O. ومع ذلك ، أود أن يتحقق الماكرو مما إذا كان العمود S ممتلئًا (أو <> "") أيضًا ، قبل نقل الصف . أخيرًا ، أود أيضًا أن تكون الصفوف المنسوخة بنفس تنسيق الصفوف في الورقة الثانية. هل هذا يغير الماكرو تماما؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي هوغز ،
لا أدري إذا كنت أفهمك بالطريقة الصحيحة. تقصد أنه إذا تم ملء الخلية الموجودة في العمود S واحتوت الخلية الموجودة في العمود O على قيمة معينة في نفس الوقت ، فهل تريد نقل الصف باستخدام التنسيق؟ وإلا فلا تتحرك؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا كريستال ،

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


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

Sub MoveRowBasedOnCellValue ()
خافت xRgStatus كنطاق
خافت xRg التاريخ كنطاق
أنا خافت وطويلة
خافت J بطول
خافت K وطولها
I = أوراق العمل ("Sheet1"). UsedRange.Rows.Count
J = أوراق العمل ("Sheet2"). UsedRange.Rows.Count
إذا كان J = 1 ثم
If Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 ثم J = 0
إنهاء حالة
تعيين xRgStatus = أوراق العمل ("Sheet1"). النطاق ("O1: O" & I)
Set xRgDate = Worksheets ("Sheet1"). Range ("S1: S" & I)
على خطأ استئناف التالي
Application.ScreenUpdating = خطأ
Application.CutCopyMode = خطأ
xRgStatus (1). كامل الصف النسخ
أوراق العمل ("Sheet2"). Range ("A" & J + 1) .PasteSpecial xlPasteAllUsingSourceTheme
ي = ي + 1
من أجل K = 2 إلى xRgStatus.Count
إذا كان CStr (xRgStatus (K) .Value) = "مغلق" إذن
إذا كانت (xRgDate (K) .Value <> "") و (TypeName (xRgDate (K) .Value) = "Date") إذن
xRgStatus (K). كامل الصف النسخ
أوراق العمل ("Sheet2"). Range ("A" & J + 1) .PasteSpecial xlPasteAllUsingSourceTheme
ي = ي + 1
إنهاء حالة
إنهاء حالة
التالى
Application.CutCopyMode = صحيح
Application.ScreenUpdating = ترو
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي كريستال ،

شكرا جزيلا لمساعدتكم!

التحيات،

هيوز
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،


كيف أنسخ الصفوف بدلاً من نقلها؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،


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

سوبر تشيز ()
خافت xRg كمدى
خافت xCell كمجموعة
أنا خافت وطويلة
خافت J بطول
خافت K وطولها
I = أوراق العمل ("Sheet1"). UsedRange.Rows.Count
J = أوراق العمل ("Sheet2"). UsedRange.Rows.Count
إذا كان J = 1 ثم
If Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 ثم J = 0
إنهاء حالة
تعيين xRg = أوراق العمل ("Sheet1"). النطاق ("C1: C" & I)
على خطأ استئناف التالي
Application.ScreenUpdating = خطأ
من أجل K = 1 إلى xRg.Count
إذا كان CStr (xRg (K) .Value) = "تم" ثم
xRg (K) .EntireRow.Copy Destination: = أوراق العمل ("Sheet2"). النطاق ("A" & J + 1)
ي = ي + 1
إنهاء حالة
التالى
Application.ScreenUpdating = ترو
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

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

نقل "الأزرق" بعد "اللون"

A1 = أزرق
A5 = اللون
A6 = (نقل "الأزرق" هنا)
وهكذا ...
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي جون،
هل تقصد إذا كانت الخلية تحتوي على "لون" في عمود ، فقم بنسخ نص الخلية الأولى إلى الخلية الموجودة أسفل خلية "اللون" وكرر نسخ هذا النص حتى نهاية العمود؟
لا توجد تعليقات منشورة هنا حتى الآن
عرض المزيد
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

حقوق التأليف والنشر © 2009 - شبكة الاتصالات العالمية.extendoffice.com. | كل الحقوق محفوظة. مشغل بواسطة ExtendOffice. | | خريطة الموقع
Microsoft وشعار Office هما علامتان تجاريتان أو علامتان تجاريتان مسجلتان لشركة Microsoft Corporation في الولايات المتحدة و / أو دول أخرى.
محمي بواسطة Sectigo SSL