সুচিপত্র
টিউটোরিয়ালটি এক্সেলে শীটগুলির ডুপ্লিকেট করার জন্য ম্যাক্রোগুলির একটি সংগ্রহ প্রদান করে: সেল মানের উপর ভিত্তি করে অনুলিপি করুন এবং নাম পরিবর্তন করুন, একাধিক শীট অনুলিপি করুন, একটি সক্রিয় ওয়ার্কশীটটি না খুলে অন্য ফাইলে অনুলিপি করুন এবং আরও অনেক কিছু৷
এক্সেলে শীট ম্যানুয়ালি কপি করা বেশ দ্রুত এবং সহজবোধ্য... যদি মাত্র একবার বা দুবার করা হয়। একাধিক শীট একাধিকবার নকল করা বিরক্তিকর এবং সময়সাপেক্ষ। এই পৃষ্ঠায়, আপনি এই কাজটি স্বয়ংক্রিয়ভাবে করার জন্য বেশ কয়েকটি দরকারী ম্যাক্রো পাবেন৷
নতুন ওয়ার্কবুকে শীট অনুলিপি করতে এক্সেল VBA
এই সহজতম এক-লাইন ম্যাক্রোটি করে এটির নাম ঠিক কী নির্দেশ করে - একটি নতুন ওয়ার্কবুকে সক্রিয় শীটটি অনুলিপি করে৷
সর্বজনীন সাব কপিশিটটিও নিউওয়ার্কবুক() সক্রিয় শীট৷ সমাপ্তি সাব কপি করুনভিবিএ দিয়ে এক্সেলে একাধিক শীট অনুলিপি করুন
যদি আপনি চান সক্রিয় ওয়ার্কবুক থেকে একটি নতুন একটিতে বেশ কয়েকটি শীট অনুলিপি করুন, আগ্রহের সমস্ত ওয়ার্কশীট নির্বাচন করুন এবং এই ম্যাক্রোটি চালান:
পাবলিক সাব CopySelectedSheets() ActiveWindow.SelectedSheets. কপি এন্ড সাবঅন্য ওয়ার্কবুকে শীট কপি করতে এক্সেল 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") " .ওয়ার্কশীট.গণনা) শেষ সাবনোট। ম্যাক্রো কাজ করার জন্য, টার্গেট ওয়ার্কবুকটি আপনার হার্ড ড্রাইভ বা নেটওয়ার্কে সংরক্ষণ করতে হবে।
একটি নির্বাচিত ওয়ার্কবুকে শীট কপি করুন
যেকোন খোলা ওয়ার্কবুকে বর্তমান শীট কপি করতে সক্ষম হতে, আপনি একটি লিস্টবক্স নিয়ন্ত্রণ ( লিস্টবক্স1 নামে) এবং দুটি বোতাম সহ একটি UserForm ( UserForm1 নামে) তৈরি করতে পারেন:
<3
এরপর, ফর্মটিতে ডাবল ক্লিক করুন এবং কোড উইন্ডোতে নীচের কোডটি পেস্ট করুন:
Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Each wbk In Application.Workbooks ListBox1.Add (wbk.Name) নেক্সট এন্ড সাব প্রাইভেট সাব CommandButton1_Click() যদি 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 লোড করুন।Show If (UserForm1.SelectedWorkbook "" ) তারপর activeSheet.Copy After:=Workbooks( _ UserForm1.SelectedWorkbook)।Sheets(UserForm1.SelectedWorkbook).Sheets(UserForm1.SelectedWorkbook).Sheets(UserForm1.SelectedWorkbook)। End SubExcel এ চালানো হলে, ম্যাক্রো আপনাকে বর্তমানে খোলা সমস্ত ওয়ার্কবুকের একটি তালিকা দেখাবে। আপনি প্রয়োজনীয় একটি নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন:
শীট অনুলিপি করতে এবং নাম পরিবর্তন করতে এক্সেল ম্যাক্রো
আপনি যখন এক্সেলে একটি শীট অনুলিপি করেন, তখন প্রতিরূপটি একটি দেওয়া হয় ডিফল্ট ফরম্যাটে নাম যেমন শিট1 (2) । নিম্নলিখিত ম্যাক্রোগুলি আপনাকে ডিফল্ট নাম ম্যানুয়ালি পরিবর্তন করার ঝামেলা এড়াতে পারে।
এই কোডটি সক্রিয় ওয়ার্কশীটকে সদৃশ করে, অনুলিপিটিকে "টেস্ট শীট" হিসাবে নাম দেয় (আপনি এটিকে আপনার পছন্দের অন্য কোনো নাম দিয়ে প্রতিস্থাপন করতে পারেন) , এবং বর্তমান ওয়ার্কবুকের শেষে কপি করা শীটটি রাখে।
সর্বজনীন সাব কপিশিটএন্ডরেনামপ্রেডিফাইন্ড()activeSheet.Copy After:=Worksheets(Sheets.Count) ত্রুটির উপর পুনরায় চালু করুন পরবর্তী activeSheet.Name ="পরীক্ষা পত্রক" শেষ সাবব্যবহারকারীকে কপি করা শীটের নাম উল্লেখ করার জন্য অনুমতি দিতে, এই কোডটি ব্যবহার করুন:
পাবলিক সাব CopySheetAndRename() স্ট্রিং অন ত্রুটির হিসাবে নতুন নাম ম্লান করুন পরবর্তী newName = ইনপুটবক্স( "কপি করা ওয়ার্কশীটের জন্য নাম লিখুন" ) যদি newName "" তাহলে activeSheet.Copy After:=Worksheets(Sheets.Count) ত্রুটিতে পুনরায় শুরু করুন পরবর্তী activeSheet.Name = newName End If End Subচালালে, ম্যাক্রো নিম্নলিখিত ইনপুট বক্সটি প্রদর্শন করে, যেখানে আপনি পছন্দসই নাম টাইপ করুন এবং ঠিক আছে টিপুন:
শিট কপি করতে এক্সেল ম্যাক্রো এবং সেল মানের উপর ভিত্তি করে নাম পরিবর্তন করুন
কিছু পরিস্থিতিতে, একটি নির্দিষ্ট সেল মান সহ একটি অনুলিপির নাম দেওয়া আরও সুবিধাজনক হতে পারে, উদাহরণস্বরূপ, একটি কলাম হেডার৷ এর জন্য, আপনি কেবল উপরের কোডটি নিন এবং স্বয়ংক্রিয়ভাবে ইনপুট বক্সে বর্তমানে নির্বাচিত সেলের মান সরবরাহ করুন। আগের উদাহরণের মতো, কপিটি সক্রিয় ওয়ার্কবুকের শেষে স্থাপন করা হবে।
সবচেয়ে জটিল অংশটি হবে আপনার ব্যবহারকারীদের সর্বদা চালানোর আগে সঠিক ঘর নির্বাচন করা। ম্যাক্রো :)
পাবলিক সাব CopySheetAndRenameByCell() স্ট্রিং অন ত্রুটির হিসাবে নতুন নাম ম্লান করুন পরবর্তী newName = InputBox( "কপি করা ওয়ার্কশীটের জন্য নাম লিখুন" , "কপি ওয়ার্কশীট" , ActiveCell.Value) যদি newName "" তারপর activeSheet। কপি After:=Worksheets(Sheets.Count) ত্রুটিতে পরবর্তী সক্রিয় শীট পুনরায় শুরু করুন। নাম = নতুন নাম শেষ হলে শেষ সাববিকল্পভাবে, আপনি এর ঠিকানা হার্ডকোড করতে পারেনসেল যার দ্বারা অনুলিপিটির নাম দেওয়া উচিত, নীচের কোডে সেল A1। অন্য কক্ষের উপর ভিত্তি করে অনুলিপি করা ওয়ার্কশীটটির নাম দিতে, একটি উপযুক্ত সেল রেফারেন্স দিয়ে A1 প্রতিস্থাপন করুন৷
সর্বজনীন সাব CopySheetAndRenameByCell2() ওয়ার্কশীট হিসাবে ডাইম wks সেট wks = activeSheet activeSheet. কপি করার পরে:=Worksheets(Sheets.Count) যদি wks.Range ( "A1" ).মান "" তারপরে ত্রুটি পুনরায় চালু করুন পরবর্তী সক্রিয় শীট। নাম = wks. রেঞ্জ( "A1" ).মান শেষ হলে wks. সক্রিয় করুন শেষ সাবএকটি বন্ধ ওয়ার্কবুকে ওয়ার্কশীট কপি করতে ম্যাক্রো
এই ম্যাক্রো একটি বন্ধ ওয়ার্কবুকের শেষে সক্রিয় শীট কপি করে। অন্য ওয়ার্কবুকের নাম কোডে নির্দিষ্ট করা নেই - ম্যাক্রো স্ট্যান্ডার্ড উইন্ডোজ এক্সপ্লোরার উইন্ডো খুলবে এবং আপনাকে যেকোন গন্তব্য ফাইল নির্বাচন করার অনুমতি দেবে:
আপনি ফাইলটি নির্বাচন করার পরে এবং খুলুন এ ক্লিক করুন, ম্যাক্রো সক্রিয় শীট কপি করবে এবং টার্গেট ওয়ার্কবুক স্বয়ংক্রিয়ভাবে বন্ধ করবে।
পাবলিক সাব কপিশিটটোক্লোজডওয়ার্কবুক() ডাইম ক্লোজডবুক ওয়ার্কবুক হিসাবে আবছা বর্তমান শীট ওয়ার্কশীট ফাইলের নাম = অ্যাপ্লিকেশন।গেটওপেনফাইলেনাম ("এক্সেল ফাইল (*.xlsx), *.xlsx" ) যদি ফাইলের নাম মিথ্যা হয় তাহলে Application.ScreenUpdating = False Set currentSheet = Application.activeSheet সেট বন্ধ বই = ওয়ার্কবুক। খুলুন (fileName) currentSheet.এর পরে অনুলিপি করুন:=closedBook.Sheets(closedBook.Worksheets.Count) বন্ধ বই৷ ক্লোজ (সত্য) অ্যাপ্লিকেশন। স্ক্রিনআপডেটিং = সত্য শেষ হলে শেষ সাবএক্সেল ভিবিএ ছাড়া অন্য ওয়ার্কবুক থেকে শীট কপি করতেopening
এই ম্যাক্রো আপনাকে অন্য এক্সেল ফাইল থেকে ওয়ার্কশীট না খুলে কপি করতে সক্ষম করে। কপি করা শীটটি বর্তমান ওয়ার্কবুকের শেষে ঢোকানো হবে৷
কোডটিতে কয়েকটি প্রতিস্থাপন করতে মনে রাখবেন:
- C:\Users\XXX\Documents\ Target_Book.xlsx কে প্রকৃত পাথ এবং ওয়ার্কবুকের নাম পরিবর্তন করা উচিত যেখান থেকে আপনি একটি শীট কপি করতে চান।
- শিট1 আপনি যে শীটটি কপি করতে চান তার নাম দিয়ে প্রতিস্থাপন করা উচিত।
এক্সেল VBA শীট একাধিকবার ডুপ্লিকেট করতে
কখনও কখনও, আপনাকে একই শীট একাধিকবার ডুপ্লিকেট করতে হতে পারে, উদাহরণস্বরূপ একই ডেটা সেটে বিভিন্ন সূত্র পরীক্ষা করতে। নিম্নলিখিত ম্যাক্রো দিয়ে এটি সহজেই করা যেতে পারে।
পাবলিক সাব ডুপ্লিকেট শীট মাল্টিপল টাইমস() ত্রুটির উপর পূর্ণসংখ্যা হিসাবে ম্লান করুন পরবর্তী n = ইনপুটবক্স( "আপনি সক্রিয় শীটের কয়টি কপি তৈরি করতে চান?" ) যদি n > = 1 তারপর সংখ্যার জন্য = 1 থেকে n activeSheet. Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) পরবর্তী শেষে যদি End Subমূল শীট খুলুন, ম্যাক্রো চালান, সক্রিয় শীটের কয়টি অনুলিপি উল্লেখ করুনআপনি বানাতে চান এবং ঠিক আছে :
ভিবিএ দিয়ে এক্সেলে শীট ডুপ্লিকেট করার জন্য ক্লিক করুন
এক্সেলে একটি শীট কপি করতে উপরের একটি ম্যাক্রোর সাথে, আপনি হয় আপনার নিজের বইতে VBA কোড ঢোকাতে পারেন অথবা আমাদের নমুনা ওয়ার্কবুক থেকে একটি ম্যাক্রো চালাতে পারেন।
আপনার ওয়ার্কবুকে একটি ম্যাক্রো কীভাবে যোগ করবেন
আপনার ওয়ার্কবুকের কোড, এই ধাপগুলি সম্পাদন করুন:
- আপনি যে ওয়ার্কশীটটি কপি করতে চান সেটি খুলুন।
- ভিজ্যুয়াল বেসিক এডিটর খুলতে Alt + F11 টিপুন।
- চালু করুন। বাম প্যানে, ডান-ক্লিক করুন এই ওয়ার্কবুক , এবং তারপর ক্লিক করুন ঢোকান > মডিউল ।
- কোড উইন্ডোতে কোড আটকান।
- ম্যাক্রো চালানোর জন্য F5 টিপুন।
বিস্তারিত ধাপে ধাপে নির্দেশাবলীর জন্য, অনুগ্রহ করে দেখুন কিভাবে Excel এ VBA কোড ঢোকাবেন।
কিভাবে চালাবেন। আমাদের নমুনা ওয়ার্কবুক থেকে একটি ম্যাক্রো
বিকল্পভাবে, আপনি ডুপ্লিকেট এক্সেল শীটগুলিতে আমাদের নমুনা ওয়ার্কবুক ডাউনলোড করতে পারেন এবং সেখান থেকে কোডটি চালাতে পারেন।
নমুনা ওয়ার্কবুকে নিম্নলিখিত ম্যাক্রো রয়েছে:
কপিশিট টু নিউওয়ার্কবুক - cu কপি করে একটি নতুন ওয়ার্কবুকে ওয়ার্কশীট রেন্ট করুন।
কপি সিলেক্টেড শীট - একাধিক শীট কপি করে যা আপনি একটি নতুন ওয়ার্কবুকে নির্বাচন করেন।
অন্যানদার ওয়ার্কবুক কপি করুন - সক্রিয় শীট কপি করে অন্য ওয়ার্কবুকের শুরুতে।
কপিশিটটিওএন্ডঅনদার ওয়ার্কবুক - অন্য এক্সেল ফাইলের শেষে সক্রিয় শীটটি অনুলিপি করে।
কপিশিটঅ্যান্ডরিনাম - বর্তমানের নকল করে শীটব্যবহারকারীর দ্বারা নির্দিষ্ট করা হিসাবে এটির নাম পরিবর্তন করে, এবং বর্তমান ওয়ার্কবুকের অন্যান্য সমস্ত শীটের পরে অনুলিপি রাখে৷
কপিশিটএন্ড পুনঃনির্ধারিত পূর্বনির্ধারিত - সক্রিয় শীটটির নকল করে, অনুলিপিতে একটি হার্ডকোড নাম দেয় এবং এটিকে রাখে বর্তমান ওয়ার্কবুকের শেষে।
CopySheetAndRenameByCell - সক্রিয় শীটের একটি অনুলিপি তৈরি করে এবং নির্বাচিত সেল মানের উপর ভিত্তি করে এটির নাম পরিবর্তন করে।
CopySheetAndRenameByCell2 - সক্রিয় শীটটি অনুলিপি করে এবং হার্ডকোড করা সেল ঠিকানার উপর ভিত্তি করে এটির নামকরণ করে৷
CopySheetToClosedWorkbook - আপনাকে একটি বন্ধ ওয়ার্কবুকে শীট অনুলিপি করতে দেয়৷
CopySheetFromClosedWorkbook - এটিকে না খুলে অন্য এক্সেল ফাইল থেকে একটি শীট কপি করতে সক্ষম করে৷
DuplicateSheetMultipleTimes - আপনাকে Excel এ একটি শীট একাধিকবার নকল করতে দেয়৷
প্রতি আপনার এক্সেলে ম্যাক্রো চালান, শুধুমাত্র নিম্নলিখিতগুলি করুন:
- ডাউনলোড করা ওয়ার্কবুকটি খুলুন এবং অনুরোধ করা হলে বিষয়বস্তু সক্রিয় করুন৷ কপি। <1 7>আপনার ওয়ার্কশীটে, Alt + F8 টিপুন, আগ্রহের ম্যাক্রো নির্বাচন করুন, এবং Run এ ক্লিক করুন।
এভাবে আপনি ডুপ্লিকেট করতে পারেন VBA সহ এক্সেলের একটি শীট। আমি পড়ার জন্য আপনাকে ধন্যবাদ এবং আগামী সপ্তাহে আমাদের ব্লগে আপনাকে দেখতে আশা করি!