VBA کے ساتھ ایکسل میں شیٹ کی نقل کیسے بنائیں

  • اس کا اشتراک
Michael Brown

ٹیوٹوریل ایکسل میں شیٹس کو ڈپلیکیٹ کرنے کے لیے میکروز کا ایک مجموعہ فراہم کرتا ہے: سیل ویلیو کی بنیاد پر کاپی اور نام تبدیل کریں، متعدد شیٹس کاپی کریں، ایک فعال ورک شیٹ کو کھولے بغیر کسی دوسری فائل میں کاپی کریں، اور بہت کچھ۔

ایکسل میں شیٹس کو دستی طور پر کاپی کرنا کافی تیز اور سیدھا ہے... اگر صرف ایک یا دو بار انجام دیا جائے۔ متعدد شیٹس کو متعدد بار نقل کرنا بورنگ اور وقت طلب ہے۔ اس صفحہ پر، آپ کو اس کام کو خودکار بنانے کے لیے مٹھی بھر مفید میکرو ملیں گے۔

    نئی ورک بک میں شیٹ کاپی کرنے کے لیے ایکسل VBA

    یہ سب سے آسان ون لائن میکرو کرتا ہے۔ بالکل وہی جو اس کا نام تجویز کرتا ہے - فعال شیٹ کو ایک نئی ورک بک میں کاپی کرتا ہے۔

    پبلک سب کاپی شیٹ ٹو نیو ورک بک ایکٹو ورک بک سے کئی شیٹس کو ایک نئی میں کاپی کریں، دلچسپی کی تمام ورک شیٹس کو منتخب کریں اور اس میکرو کو چلائیں:Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets.Copy End Sub

    Excel VBA کو دوسری ورک بک میں کاپی کرنے کے لیے

    اس بات پر منحصر ہے کہ آپ کاپی شدہ شیٹ کو کہاں داخل کرنا چاہتے ہیں، درج ذیل میں سے ایک میکرو استعمال کریں۔

    شیٹ کو دوسری ورک بک کے شروع میں کاپی کریں

    یہ میکرو ایکٹو شیٹ کو پہلے کاپی کرتا ہے۔ منزل فائل میں تمام دیگر ورک شیٹس، اس مثال میں Book1 ۔ کسی دوسری فائل میں کاپی کرنے کے لیے، "Book1.xlsx" کو اپنی ٹارگٹ ورک بک کے مکمل نام سے بدل دیں۔

    عوامی ذیلیCopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks( "Book1.xlsx" ).Sheets(1) End Sub

    شیٹ کو دوسری ورک بک کے آخر میں کاپی کریں

    کوڈ کا یہ ٹکڑا فعال ورک شیٹ کو نقل کرتا ہے اور کاپی کو Book1 کے آخر میں رکھتا ہے۔ ایک بار پھر، براہ کرم "Book1.xlsx" کو اپنی منزل کی ورک بک کے نام سے بدلنا یاد رکھیں۔

    عوامی ذیلی CopySheetToEndAnotherWorkbook()activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx") " .Worksheets.Count) اختتامی ذیلی

    نوٹ۔ میکرو کے کام کرنے کے لیے، ٹارگٹ ورک بک آپ کی ہارڈ ڈرائیو یا نیٹ ورک پر محفوظ ہونی چاہیے۔

    شیٹ کو کسی منتخب ورک بک میں کاپی کریں

    موجودہ شیٹ کو کسی بھی کھلی ورک بک میں کاپی کرنے کے لیے، آپ ایک ListBox کنٹرول ( نام ListBox1 ) اور دو بٹنوں کے ساتھ ایک UserForm (جس کا نام UserForm1 ہے) بنا سکتے ہیں:

    <3

    اس کے بعد، فارم پر ڈبل کلک کریں اور کوڈ ونڈو میں نیچے دیئے گئے کوڈ کو چسپاں کریں:

    Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Each wbk In Application.Workbooks ListBox1.Idd (wbk.Name) اگلا اینڈ سب پرائیویٹ سب کمانڈ بٹن 1_کلک () اگر ListBox1.ListIndex > -1 پھر SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) End If Me.Hide End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Me.Hide End Sub

    کی جگہ پر UserForm کے ساتھ، آپ درج ذیل میں سے ایک استعمال کر سکتے ہیں۔ کاپی کرنے کے لیے میکرواپنی پسند کی ورک بک میں ایکٹو شیٹ۔

    شیٹ کو منتخب ورک بک کے آغاز میں کاپی کریں :

    پبلک سب کاپی شیٹ ٹو بیگننگ ایک اور ورک بک " ) پھر ActiveSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook).Sheets(1) End If Unload UserForm1 End Sub

    شیٹ کو منتخب ورک بک کے آخر میں کاپی کریں :

    عوامی ذیلی CopySheetToEndAnotherWorkbook() UserForm1 UserForm1 لوڈ کریں۔ دکھائیں اگر (UserForm1.SelectedWorkbook "" ) پھر ایکٹیو شیٹ کاپی کریں۔ اس کے بعد:=Workbooks( _ UserForm1.SelectedWorkbook)۔Sheets(UserForm1.SelectedWorkbook)۔Sheets(UserForm1.SelectedWorkbook)۔Sheets(UserForm1.SelectedWorkbook)۔Sheets(UserForm1.SelectedWorkbook)۔ End Sub

    ایکسل میں چلنے پر، میکرو آپ کو فی الحال کھلی ہوئی تمام ورک بک کی فہرست دکھائے گا۔ آپ مطلوبہ کو منتخب کریں اور OK پر کلک کریں:

    شیٹ کاپی کرنے اور نام تبدیل کرنے کے لیے ایکسل میکرو

    جب آپ ایکسل میں شیٹ کاپی کرتے ہیں، تو نقل کو ایک دیا جاتا ہے۔ پہلے سے طے شدہ فارمیٹ میں نام جیسے Sheet1 (2) ۔ درج ذیل میکرو آپ کو پہلے سے طے شدہ نام کو دستی طور پر تبدیل کرنے کی پریشانی سے بچا سکتے ہیں۔

    یہ کوڈ فعال ورک شیٹ کی نقل تیار کرتا ہے، کاپی کو "ٹیسٹ شیٹ" کا نام دیتا ہے (آپ اسے اپنی پسند کے کسی دوسرے نام سے تبدیل کرنے کے لیے آزاد ہیں) ، اور کاپی شدہ شیٹ کو موجودہ ورک بک کے آخر میں رکھتا ہے۔

    عوامی ذیلی CopySheetAndRenamePredefined()activeSheet.Copy After:=Worksheets(Sheets.Count) خرابی پر اگلا فعال شیٹ دوبارہ شروع کریں۔"ٹیسٹ شیٹ" اینڈ سب

    صارف کو کاپی شدہ شیٹ کے لیے نام بتانے کی اجازت دینے کے لیے ، اس کوڈ کا استعمال کریں:

    پبلک سب کاپی شیٹ اینڈرینام() ڈِم نیا نام اسٹرنگ آن ایرر دوبارہ شروع کریں اگلا نیا نام = InputBox( "کاپی شدہ ورک شیٹ کے لیے نام درج کریں" ) اگر newName "" پھر activeSheet.Copy After:=Worksheets(Sheets.Count) خرابی پر دوبارہ شروع کریں اگلا activeSheet.Name = newName End If End Sub

    چلنے پر، میکرو درج ذیل ان پٹ باکس دکھاتا ہے، جس میں آپ مطلوبہ نام ٹائپ کرتے ہیں اور OK دباتے ہیں:

    شیٹ کاپی کرنے اور سیل ویلیو کی بنیاد پر نام تبدیل کرنے کے لیے ایکسل میکرو

    ان کچھ حالات میں، مخصوص سیل ویلیو کے ساتھ کاپی کو نام دینا زیادہ آسان ہو سکتا ہے، مثال کے طور پر، کالم ہیڈر۔ اس کے لیے، آپ صرف اوپر کا کوڈ لیں اور فی الحال منتخب سیل کی قیمت خود بخود ان پٹ باکس میں فراہم کریں۔ پچھلی مثال کی طرح، کاپی فعال ورک بک کے آخر میں رکھی جائے گی۔

    سب سے مشکل حصہ یہ ہوگا کہ آپ کے صارفین کو چلانے سے پہلے ہمیشہ صحیح سیل کا انتخاب کیا جائے۔ the macro :)

    Public Sub CopySheetAndRenameByCell() سٹرنگ آن ایرر کے طور پر نئے نام کو مدھم کریں اگلا newName = InputBox( "کاپی شدہ ورک شیٹ کا نام درج کریں" , "کاپی ورک شیٹ" , ActiveCell.Value) اگر newName "" پھر ایکٹو شیٹ۔ Copy After:=Worksheets(Sheets.Count) خرابی پر اگلی ایکٹیو شیٹ دوبارہ شروع کریں۔ نام = newName End If End Sub

    متبادل طور پر، آپ کا ایڈریس ہارڈ کوڈ کرسکتے ہیںسیل جس کے ذریعہ کاپی کا نام ہونا چاہئے، نیچے کوڈ میں سیل A1۔ کاپی شدہ ورک شیٹ کو کسی دوسرے سیل کی بنیاد پر نام دینے کے لیے، A1 کو ایک مناسب سیل حوالہ سے تبدیل کریں۔

    Public Sub CopySheetAndRenameByCell2() Wks As Worksheet Set wks = activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) اگر wks.Range ( "A1" ).ویلیو "" پھر خرابی پر اگلی ایکٹیو شیٹ دوبارہ شروع کریں۔ نام = wks.Range( "A1" ). ویلیو اینڈ اگر wks۔ فعال کریں End Sub

    ورک شیٹ کو بند ورک بک میں کاپی کرنے کے لیے میکرو

    یہ میکرو فعال شیٹ کو بند ورک بک کے آخر میں کاپی کرتا ہے۔ کوڈ میں کسی اور ورک بک کا نام نہیں بتایا گیا ہے - میکرو معیاری ونڈوز ایکسپلورر ونڈو کو کھولے گا اور آپ کو کسی بھی منزل کی فائل کو منتخب کرنے کی اجازت دے گا:

    فائل کو منتخب کرنے کے بعد اور کھولیں پر کلک کریں، میکرو ایکٹو شیٹ کو کاپی کرے گا اور ٹارگٹ ورک بک کو خود بخود بند کردے گا۔

    Public Sub CopySheetToClosedWorkbook() Dim fileName Dim ClosedBook As Workbook مدھم کرنٹ شیٹ As Worksheet fileName = Application.GetOpenFilename( "Excel فائلیں (*.xlsx), *.xlsx" ) اگر فائل کا نام غلط ہے تو Application.ScreenUpdating = False Set currentSheet = Application.activeSheet Set ClosedBook = Workbooks۔ کھولیں (فائل کا نام) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count) بند شدہ کتاب۔ بند کریں ( سچی ) ایپلیکیشن۔ اسکرین اپڈیٹنگ = درست اختتام اگر اختتامی اختتام ذیلی

    بغیر کسی دوسری ورک بک سے شیٹ کاپی کرنے کے لیے ایکسل VBAکھولنا

    یہ میکرو آپ کو کسی دوسری ایکسل فائل سے ورک شیٹ کو کھولے بغیر کاپی کرنے کے قابل بناتا ہے۔ کاپی شدہ شیٹ موجودہ ورک بک کے آخر میں داخل کی جائے گی۔

    بس کوڈ میں کچھ تبدیلیاں کرنا یاد رکھیں:

    • C:\Users\XXX\Documents\ Target_Book.xlsx کو اس ورک بک کے اصل راستے اور نام میں تبدیل کیا جانا چاہیے جہاں سے آپ شیٹ کاپی کرنا چاہتے ہیں۔
    • Sheet1 کو اس شیٹ کے نام سے بدلنا چاہیے جسے آپ کاپی کرنا چاہتے ہیں۔
    Public Sub CopySheetFromClosedWorkbook() مدھم سورس بک بطور ورک بک ایپلیکیشن۔ اسکرین اپڈیٹنگ = غلط سیٹ سورس بک = ورک بک کھولیں ( "C:\Users\XXX\Documents\Target_Book.xlsx" ) sourceBook.Sheets( "Sheet1" ).اس کے بعد کاپی کریں:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) سورس بک۔ Application بند کریں۔ScreenUpdating = True End Sub

    Excel VBA تاکہ شیٹ کو متعدد بار ڈپلیکیٹ کریں

    بعض اوقات، آپ کو ایک ہی شیٹ کو ایک سے زیادہ بار نقل کرنے کی ضرورت پڑسکتی ہے، مثال کے طور پر ایک ہی ڈیٹا سیٹ پر مختلف فارمولوں کی جانچ کرنا۔ یہ مندرجہ ذیل میکرو کے ساتھ آسانی سے کیا جا سکتا ہے۔

    Public Sub DuplicateSheetMultipleTimes() Dim n As Integer On Error دوبارہ شروع کریں n = InputBox( "آپ فعال شیٹ کی کتنی کاپیاں بنانا چاہتے ہیں؟" ) اگر n > = 1 پھر نمبروں کے لیے = 1 سے n ایکٹیو شیٹ۔ کاپی اس کے بعد:=ActiveWorkbook.Sheets(Worksheets.Count) اگلا اینڈ اگر End Sub

    اصل شیٹ کھولیں، میکرو چلائیں، بتائیں کہ فعال شیٹ کی کتنی کاپیاں ہیں۔آپ بنانا چاہتے ہیں، اور کلک کریں OK :

    ایکسل میں شیٹس کو VBA کے ساتھ کیسے ڈپلیکیٹ کریں

    ایکسل میں شیٹ کاپی کرنے کے لیے مندرجہ بالا میکرو میں سے کسی ایک کے ساتھ، آپ یا تو اپنی کتاب میں VBA کوڈ داخل کر سکتے ہیں یا ہماری نمونہ ورک بک سے میکرو چلا سکتے ہیں۔

    اپنی ورک بک میں میکرو کیسے شامل کریں

    اپنی ورک بک میں کوڈ، یہ اقدامات کریں:

    1. اس ورک شیٹ کو کھولیں جسے آپ کاپی کرنا چاہتے ہیں۔
    2. بصری بنیادی ایڈیٹر کو کھولنے کے لیے Alt + F11 دبائیں۔
    3. آن بائیں پین پر، This Workbook پر دائیں کلک کریں، اور پھر Insert > Module پر کلک کریں۔
    4. کوڈ ونڈو میں کوڈ چسپاں کریں۔
    5. میکرو کو چلانے کے لیے F5 دبائیں۔

    تفصیلی مرحلہ وار ہدایات کے لیے، براہ کرم ملاحظہ کریں کہ ایکسل میں VBA کوڈ کیسے داخل کریں۔

    چلنے کا طریقہ۔ ہماری نمونہ ورک بک سے ایک میکرو

    متبادل طور پر، آپ ہماری نمونہ ورک بک کو ڈپلیکیٹ Excel Sheets پر ڈاؤن لوڈ کر سکتے ہیں اور وہاں سے کوڈ چلا سکتے ہیں۔

    نمونہ ورک بک میں درج ذیل میکرو ہیں:

    CopySheetToNewWorkbook - cu کو کاپی کرتا ہے۔ ورک شیٹ کو نئی ورک بک میں رینٹ کریں۔

    کاپی سلیکٹڈ شیٹس - ایک سے زیادہ شیٹس کو کاپی کرتا ہے جسے آپ ایک نئی ورک بک میں منتخب کرتے ہیں۔ کسی اور ورک بک کے آغاز تک۔

    CopySheetToEndAnotherWorkbook - ایکٹو شیٹ کو ایک اور ایکسل فائل کے آخر میں کاپی کرتا ہے۔

    CopySheetAndRename - موجودہ کو نقل کرتا ہے۔ چادراس کا نام بدلتا ہے جیسا کہ صارف نے بیان کیا ہے، اور کاپی کو موجودہ ورک بک میں دیگر تمام شیٹس کے بعد رکھتا ہے۔

    CopySheetAndRenamePredefined - ایکٹو شیٹ کو نقل کرتا ہے، کاپی کو ایک ہارڈ کوڈ شدہ نام دیتا ہے اور اسے رکھتا ہے۔ موجودہ ورک بک کے آخر میں۔

    CopySheetAndRenameByCell - فعال شیٹ کی ایک کاپی بناتا ہے اور منتخب سیل ویلیو کی بنیاد پر اس کا نام تبدیل کرتا ہے۔

    CopySheetAndRenameByCell2 - فعال شیٹ کو کاپی کرتا ہے اور ہارڈ کوڈ شدہ سیل ایڈریس کی بنیاد پر اس کا نام تبدیل کرتا ہے۔

    CopySheetToClosedWorkbook - آپ کو شیٹ کو بند ورک بک میں کاپی کرنے کی اجازت دیتا ہے۔

    CopySheetFromClosedWorkbook - کسی شیٹ کو کھولے بغیر کسی دوسری Excel فائل سے کاپی کرنے کے قابل بناتا ہے۔

    DuplicateSheetMultipleTimes - آپ کو ایکسل میں ایک شیٹ کو متعدد بار نقل کرنے دیتا ہے۔

    اپنے ایکسل میں میکرو چلائیں، بس درج ذیل کام کریں:

    1. ڈاؤن لوڈ کردہ ورک بک کھولیں اور اگر اشارہ کیا جائے تو مواد کو فعال کریں۔ کاپی۔
    2. <1 7>اپنی ورک شیٹ میں، Alt + F8 دبائیں، دلچسپی کا میکرو منتخب کریں، اور چلائیں پر کلک کریں۔

    اس طرح آپ ڈپلیکیٹ کرسکتے ہیں۔ VBA کے ساتھ ایکسل میں ایک شیٹ۔ میں پڑھنے کے لیے آپ کا شکریہ ادا کرتا ہوں اور امید کرتا ہوں کہ آپ کو اگلے ہفتے ہمارے بلاگ پر ملوں گا!

    مائیکل براؤن سافٹ ویئر ٹولز کا استعمال کرتے ہوئے پیچیدہ عمل کو آسان بنانے کے جذبے کے ساتھ ٹیکنالوجی سے وابستہ ایک سرشار ہے۔ ٹیک انڈسٹری میں ایک دہائی سے زیادہ کے تجربے کے ساتھ، اس نے مائیکروسافٹ ایکسل اور آؤٹ لک کے ساتھ ساتھ گوگل شیٹس اور دستاویزات میں بھی اپنی صلاحیتوں کو نکھارا ہے۔ مائیکل کا بلاگ اپنے علم اور مہارت کو دوسروں کے ساتھ بانٹنے کے لیے وقف ہے، پیداواری صلاحیت اور کارکردگی کو بہتر بنانے کے لیے آسان پیروی کرنے والی تجاویز اور سبق فراہم کرتا ہے۔ چاہے آپ ایک تجربہ کار پیشہ ور ہوں یا ابتدائی، مائیکل کا بلاگ ان ضروری سافٹ ویئر ٹولز سے زیادہ سے زیادہ فائدہ اٹھانے کے لیے قیمتی بصیرتیں اور عملی مشورہ پیش کرتا ہے۔