ٹپ: دوسری زبانیں Google-Translated ہیں. آپ ملاحظہ کر سکتے ہیں English اس لنک کا ورژن.
لاگ ان کریں
x
or
x
x
رجسٹر
x

or

ایک کالم میں سیل کی قیمت پر مبنی قطاروں کی نقل کیسے کریں؟

مثال کے طور پر، میرے پاس متعدد اعداد و شمار ہیں جن میں کالم D میں نمبروں کی ایک فہرست شامل ہے، اور اب میں مندرجہ بالا نتائج حاصل کرنے کے لئے میں مکمل قطار کو کالم ڈی ڈی میں عددی اقدار کی بنیاد پر کئی بار نقل کرنا چاہتا ہوں. میں ایکسل کے سیل اقدار کی بنیاد پر قطعوں کو کئی دفعہ کاپی کیسے کرسک سکتا ہوں؟

سیل 1 کی طرف سے ڈوکیٹ کی قطاریں

VBA کوڈ کے ساتھ سیل اقدار پر مبنی قطار قطعے کئی دفعہ


تیر نیلے رنگ بلبلا VBA کوڈ کے ساتھ سیل اقدار پر مبنی قطار قطعے کئی دفعہ

سیل کی قیمتوں پر مبنی پوری قطاروں کو ایک سے زیادہ بار کاپی کرنے اور نقل کرنے کے لئے، مندرجہ ذیل VBA کوڈ آپ کی مدد کرسکتا ہے، برائے مہربانی ایسا کریں:

1. نیچے رکھو ALT + F11 کلیدوں کو کھولنے کے لئے مائیکروسافٹ بصری بنیادی کے لئے درخواستیں کھڑکی.

2. کلک کریں داخل > ماڈیول، اور مندرجہ ذیل کوڈ میں پیسٹ کریں ماڈیول ونڈو

VBA کوڈ: سیل قیمت پر مبنی قطار قطع نظر کئی بار:

Sub CopyData()
'Updateby Extendoffice 20160922
    Dim xRow As Long
    Dim VInSertNum As Variant
    xRow = 1
    Application.ScreenUpdating = False
    Do While (Cells(xRow, "A") <> "")
        VInSertNum = Cells(xRow, "D")
        If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
           Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
           Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "D")).Select
           Selection.Insert Shift:=xlDown
           xRow = xRow + VInSertNum - 1
        End If
        xRow = xRow + 1
    Loop
    Application.ScreenUpdating = False
End Sub

3. پھر دبائیں F5 اس کوڈ کو چلانا کرنے کی کلید، آپ کی ضرورت کے طور پر کالم ڈی میں سیل کی قیمت کی بنیاد پر پوری قطار کئی دفعہ نقل کی گئی ہیں.

نوٹمندرجہ ذیل کوڈ میں، خط A آپ کے ڈیٹا کی حد، اور خط کے آغاز کالم کی نشاندہی کرتا ہے D کالم کا خط ہے جس پر آپ کی بنیاد پر قطاروں کو نقل کرنا ہے. برائے مہربانی انہیں اپنی ضرورت میں تبدیل کریں.



سفارش کردہ پروڈکٹیوٹی ٹولز

آفس ٹیب

سونے کی ستارہ ایکس این ایم ایکس ایکس کروم، فائر فاکس اور نئے انٹرنیٹ ایکسپلورر کی طرح، ایکسل اور دیگر دفتری سافٹ ویئر میں آسان ٹیبز لائیں.

ایکسل کے لئے Kutools

سونے کی ستارہ ایکس این ایم ایکس ایکس حیرت انگیز! 5 منٹ میں اپنی پیداوری میں اضافہ کریں. کسی بھی خاص مہارت کی ضرورت نہیں، ہر روز دو گھنٹوں کو بچاؤ!

سونے کی ستارہ ایکس این ایم ایکس ایکس 300 ایکسل کے لئے نئی خصوصیات، ایکسل آسان اور طاقتور بنائیں:

  • ڈیٹا کھونے کے بغیر سیل / قطار / کالم ضم
  • ایک سے زیادہ شیٹ اور ورک بک بک کو یکجا اور مضبوط.
  • رینجز کا موازنہ کریں، ایک سے زیادہ رینج کاپی کریں، متن میں تاریخ، یونٹ اور کرنسی تبادلوں میں تبدیل کریں.
  • رنگوں کی طرف سے شمار، پیجنگ Subtotals، اعلی درجے کی ترتیب اور سپر فلٹر،
  • مزید منتخب کریں / داخل / حذف / متن / شکل / لنک / تبصرہ / ورک بک بک / ورکشاپ شیٹ ...

ایکسل کے لئے کوٹول کی سکرین شاٹ

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Leah · 5 months ago
    Hello, this worked great. However, I have a report with 1000 entries and the code stopped duplicating around entry 480. Is there something that I can add so that it completes the action on the entire report?
    • To post as a guest, your comment is unpublished.
      skyyang · 5 months ago
      Hello, Leah,
      I have tested the code in 2000 rows, and it works well.
      Could you send your worksheet to me for testing the code?
      My email address is skyyang@extendoffice.com
      Look forward to your reply!
      • To post as a guest, your comment is unpublished.
        Leah · 5 months ago
        Hello! I got it to work. It was an error on my side, the report had a few blank rows that were hidden that were causing the script to stop looping. It worked for my report with 8,000 rows! Thank youQ
  • To post as a guest, your comment is unpublished.
    Jackie · 8 months ago
    So I am using this code but I want it to search the entire document not just row 1 or whatever is indicated by xRow = 1. I am trying to put in the range 1:2000 but it is not working. How can I identify xRow = any row on the sheet that includes the information I identify in the code below?


    Dim xRow As Long
    Dim Value As Variant


    xRow = 1: 2000

    Application.ScreenUpdating = False
    Do While (Cells(xRow, "A") <> "")
    Value = Cells(xRow, "D")
    Value2 = Cells(xRow, "A")
    If Not ((Value = "allegheny general") And IsNumeric(Value2 = G0202)) Then
    Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
    Range(Cells(xRow + 1, "A"), Cells(xRow + 1, "D")).Select
    Selection.Insert Shift:=xlDown
    xRow = xRow + 1
    End If
    xRow = xRow + 1
    Loop
    Application.ScreenUpdating = False
    End Sub
  • To post as a guest, your comment is unpublished.
    Hayley · 9 months ago
    Do you know what the code would be to duplicate the row just the once, based on if say cell d contains 'Yes' - I have been chasing similar code but for something that will duplicate a row based on a cell saying yes
  • To post as a guest, your comment is unpublished.
    Steve · 11 months ago
    I used the code above which works great but I need one more step after the row is pasted. I just cannot get it to properly work. I need it to put zero in column "N" in the row after it is pasted but keep the value in "N" in the original copied row.


    Sub CopyData()
    'Updateby Extendoffice 20160922
    Dim xRow As Long
    Dim VInSertNum As Variant
    xRow = 1
    Application.ScreenUpdating = False
    Do While (Cells(xRow, "A") <> "")
    VInSertNum = Cells(xRow, "J")
    If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
    Range(Cells(xRow, "A"), Cells(xRow, "AN")).Copy
    ' Cells(xRow, 14).Value = 0 this did all rows
    Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "AN")).Select
    'Cells(xRow, 14).Value = 0
    'this did all rows
    Selection.Insert Shift:=xlDown
    ' Cells(xRow, 14).Value = 0 this did the first row only
    xRow = xRow + VInSertNum - 1
    'Cells(xRow - 1, 14).Value = 0
    End If
    ' Cells(xRow - 1, 14).Value = 0
    xRow = xRow + 1
    ' Cells(xRow + 1, 14).Value = 0
    Loop
    'Cells(xRow, 14).Value = 0 this did no rows
    Application.ScreenUpdating = False
    End Sub
  • To post as a guest, your comment is unpublished.
    OSHRI · 1 years ago
    Hi,
    Someone knows hot convert this VBA code to Google Apps scripts (google sheets)?