فهرست مطالب
هر زمان که نیاز داشتید، می توانید محدوده ای را از یک برگه به برگه یا کتاب کار دیگر کپی کنید. کپی و پیست کردن انواع مختلفی دارد. در ادامه این مقاله، با روشهای مختلف استفاده از محدوده کپی Excel VBA در یک برگه دیگر آشنا میشوید.
برای اینکه توضیح را زنده کنم، از یک مجموعه داده نمونه استفاده میکنم که اطلاعات شخصی افراد خاص را نشان میدهد. . مجموعه داده دارای 4 ستون است. این ستون ها عبارتند از نام، نام خانوادگی، نام کامل، و ایمیل .
دانلود کتاب کار برای تمرین
VBA Copy Range to Another Sheet.xlsm
8 راه برای Excel VBA Copy Range در Sheet دیگر
1. یک محدوده را کپی کنید به برگه دیگری با قالب
هر زمان که بخواهید محدوده ای از یک برگه به برگه دیگر را با قالب کپی کنید، می توانید به سادگی با استفاده از این کار را انجام دهید. 2>VBA .
در اینجا، من محدوده ای از صفحه Dataset را تا WithFormat برگ کپی می کنم.
بیایید روند را شروع کنیم،
ابتدا، برگه Developer >> Visual Basic را انتخاب کنید
همچنین می توانید از صفحه کلید ALT + F11 برای باز کردن VBA <استفاده کنید 3>ویرایشگر.
بعد، پنجره جدیدی به نام Microsoft Visual Basic برای برنامه ها باز می شود.
از آنجا، Insert <3 را باز کنید>>> Module را انتخاب کنید.
A Module باز می شود سپس کد زیر را در قسمت باز شده تایپ کنید >> مشاهده ماکروها
➤ یک کادر گفتگو باز می شود.
اکنون، از نام ماکرو Copy_Range_BelowLastCell_AnotherSheets را انتخاب کنید همچنین کتاب کار را در Macros در انتخاب کنید.
در نهایت، اجرا کنید ماکرو انتخاب شده.
بنابراین، محدوده انتخاب شده را کپی می کند و آن را از آخرین ردیف صفحه دیگر جای می دهد .
8. VBA یک محدوده را در آخرین ردیف کتاب کار دیگری کپی کنید
اگر می خواهید کپی کنید محدوده ای تا آخرین ردیف از برگه کتاب کار دیگر، می توانید از VBA نیز استفاده کنید.
در اینجا، من یک محدوده را از Dataset2 کپی می کنم برگ به Sheet1 از Book2 اما از اولین سلول غیر خالی.
برای شروع روش،
ابتدا، برگه Developer >> Visual Basic
همچنین می توانید از صفحه کلید ALT + F11 برای باز کردن VBA ویرایشگر استفاده کنید.
بعد، پنجره جدیدی از Microsoft Visual Basic برای برنامه ها باز می شود.
از آنجا، Insert <3 را باز کنید>>> Module را انتخاب کنید.
A Module باز می شود سپس کد زیر را در Module باز شده تایپ کنید.
5018
در اینجا، رویه فرعی Copy_Range_BelowLastCell_To_Another_Workbook جایی که wsCopy و wsDestination کاربرگ نوع، lCopyLastRow و lDestLastRow هستند نوع طول هستند.
ابتدا، از تنظیم برای تنظیم متغیرهای برگه جهت کپی و برگه مقصد استفاده می شود.
بعدی، از روش Row برای یافتن آخرین ردیف بر اساس داده های ستون A در محدوده کپی استفاده کرد.
دوباره، از روش Row استفاده کرد. برای یافتن اولین ردیف خالی بر اساس داده های ستون A در محدوده مقصد نیز از Offset برای پایین آوردن یک ویژگی استفاده می شود.
در نهایت، کپی شد داده های Dataset2 برگ از Excel VBA Copy Range to Another Sheet.xlsm به مقصد Sheet1 کتاب کار Book2.xlsx .
اکنون، کد را ذخیره کنید و به کاربرگ برگردید.
بعد، برگه نمایش >> از ماکروها >> مشاهده ماکروها
➤ یک کادر گفتگو باز می شود.
اکنون، از نام ماکرو Copy_Range_BelowLastCell_To_Another_Workbook را نیز در Macros در انتخاب کنید.
در نهایت، اجرا کنید ماکرو انتخاب شده.
بنابراین، محدوده انتخابی را از صفحه موجود تا آخرین ردیف کتاب کار دیگری کپی می کند.
بخش تمرین
من برای تمرین این روش های توضیح داده شده محدوده کپی اکسل VBA یک برگه تمرین در کتاب کار ارائه کرده ام. به برگه ای دیگر.
نتیجه گیری
در این مقاله، 8 نوع مختلف از روش های آسان و سریع را توضیح داده ام.Excel VBA محدوده را در برگه دیگری کپی کنید. این روشهای مختلف به شما کمک میکند تا محدودهای را از یک صفحه به برگه دیگر و همچنین از یک برگه به کتاب کار دیگر کپی کنید. در آخر، اگر هر نوع پیشنهاد، ایده و بازخوردی دارید، لطفاً در زیر نظر دهید.
ماژول.6938
در اینجا، رویه فرعی Copy_Range_withFormat_ToAnother_Sheet را اعلام کردم
من محدوده B1:E10 را برای کپی کردن از برگه موجود به نام برگه WithFormat انتخاب کردم.
در اینجا، از Copy استفاده کردم. روش برای کپی محدوده انتخاب شده، Copy روش هر محدوده را با Format کپی می کند.
در نهایت، ذخیره کد و بازگشت به کاربرگ .
بعد، برگه نمایش >> از ماکروها >> مشاهده ماکروها
➤ یک کادر گفتگو باز می شود.
اکنون، از نام ماکرو Copy_Range_withFormat_ToAnother_Sheet همچنین کتاب کار را در ماکروها در انتخاب کنید.
در نهایت، اجرا کنید ماکرو انتخاب شده.
بنابراین، محدوده انتخابی را با Format در برگه جدیدی که انتخاب کردهام کپی میکند ( WithFormat) .
2. VBA یک محدوده را در یک صفحه دیگر بدون فرمت کپی کنید
همچنین با استفاده از VBA کپی کردن یک محدوده به صفحه دیگری بدون قالب امکان پذیر است.
در اینجا، کپی محدوده ای از صفحه Dataset تا WithoutFormat sheet.
اجازه دهید روند را شروع کنیم،
اکنون، Developer را باز کنید. برگه >> Visual Basic را انتخاب کنید ( از ALT + F11 استفاده کنید)
بعد، باز می شود Microsoft Visual Basic for Applications.
سپس، Insert را باز کنید. >> Module را انتخاب کنید.
A Module باز می شود سپس کد زیر را در Module باز شده تایپ کنید.
9856
در اینجا، رویه فرعی Copy_Range_WithoutFormat_Toanother_Sheet
من محدوده را انتخاب کردم B1:E10 برای کپی کردن از برگه موجود به نام صفحه WithoutFormat .
در اینجا، من از روش Copy برای کپی کردن محدوده انتخاب شده استفاده کردم، اما همچنین Paste:=xlPasteValues را در روش PasteSpecial ذکر کرد تا فقط Values محدوده انتخاب شده را جایگذاری کند، نه قالب را.
در نهایت ، کد را ذخیره کنید و به کاربرگ برگردید.
بعد، برگه نمایش >> از ماکروها >> مشاهده ماکروها
➤ یک کادر گفتگو باز می شود.
اکنون، از نام ماکرو Copy_Range_WithoutFormat_Toanother_Sheet و همچنین کتاب کار را در Macros در انتخاب کنید.
در نهایت، ماکرو انتخاب شده را اجرا کنید.
بنابراین، محدوده انتخاب شده را فقط با مقادیر بدون قالب<3 کپی می کند >.
3. یک محدوده را در صفحه دیگری با قالب و عرض ستون کپی کنید
گاهی اوقات ممکن است بخواهید هر محدوده انتخاب شده را همانطور که هست کپی کنید، برای آن می توانید یک محدوده را با قالب و عرض ستون کپی کنید.
در اینجا، من محدوده ای از Dataset برگ را به Format & عرض ستون برگ.
برای مشاهده روش انجام کار با استفاده از VBA ،
ابتدا، برگه Developer >> Visual Basic
همچنین می توانید از صفحه کلید ALT + F11 برای باز کردن VBA ویرایشگر استفاده کنید.
بعد، پنجره جدیدی از Microsoft Visual Basic برای برنامه ها باز می شود.
در آنجا، Insert را باز کنید. >> Module را انتخاب کنید.
A Module باز می شود سپس کد زیر را در Module باز شده تایپ کنید.
7140
در اینجا، رویه فرعی Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth
من محدوده را انتخاب کردم را اعلام کردم B1:E10 برای کپی کردن از برگه موجود به نام برگه مقصد Format & عرض ستون .
در اینجا، من از روش کپی برای کپی محدوده انتخاب شده استفاده کردم. من همچنین از روش PasteSpecial استفاده کردم که در آن به Paste:=xlPasteColumnWidths اشاره کردم تا محدوده انتخاب شده را به همراه Format و Column Width بچسباند. .
در نهایت، کد را ذخیره کنید و به کاربرگ برگردید.
بعد، برگه نمایش >> از ماکروها >> مشاهده ماکروها
➤ یک کادر گفتگو باز می شود.
اکنون، از نام ماکرو Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth و همچنین کتاب کار را در Macros در انتخاب کنید.
در نهایت، گزینه را اجرا کنید ماکرو .
در نتیجه، محدوده انتخاب شده را با قالب و عرض ستون کپی می کند.
4. VBA یک محدوده را با فرمول در یک صفحه دیگر کپی کنید
در صورتی که فرمولی در مجموعه داده خود دارید که می خواهید کپی کنید. جای نگرانی نیست! می توانید محدوده حاوی Formula را در برگه دیگری کپی کنید و فرمول را دست نخورده نگه دارید.
در اینجا، من یک محدوده را از صفحه Dataset کپی می کنم. به WithFormula sheet
اجازه دهید روند را شروع کنیم،
برای شروع، برگه Developer >> Visual Basic را انتخاب کنید ( شما همچنین می توانید از ALT + F11 صفحه کلید استفاده کنید)
بعد، Microsoft Visual Basic for Applications باز خواهد شد.
از آنجا، Insert >> Module را انتخاب کنید.
A Module باز می شود سپس کد زیر را در Module باز شده تایپ کنید.
7241
در اینجا، رویال فرعی Copy_Range_withFormula_ToAnother_Sheet را اعلام کردم
من محدوده را گرفته ام B1:E10 برای کپی کردن از برگه موجود به نام صفحه مقصد WithFormula .
در اینجا، من از روش Copy برای کپی کردن محدوده انتخاب شده استفاده کردم. من همچنین از روش PasteSpecial استفاده کردم که در آن Paste:=xlPasteFormulas را ذکر کردم تا Formulas را به همراه محدوده انتخاب شده حمل کند.
در نهایت. ، کد را ذخیره کنید و به کاربرگ برگردید.
سپس، View را باز کنید. برگه >> از ماکروها >> مشاهده ماکروها
➤ یک کادر گفتگو باز می شود.
اکنون، از نام ماکرو Copy_Range_withFormula_ToAnother_Sheet همچنین کتاب کار را در Macros در انتخاب کنید.
در نهایت، اجرا کنید ماکرو انتخاب شده.
بنابراین، همه محدوده های سلولی انتخاب شده را با فرمول ها کپی می کند.
خواندنهای مشابه:
- نحوه استفاده از VBA Range Offset (11 روش)
- VBA برای هر سلول در محدوده در اکسل (3 روش)
- نحوه استفاده از محدوده شیء VBA در اکسل (5 ویژگی)
5. کپی کردن یک محدوده با AutoFit در یک صفحه دیگر
در حالی که کپی کردن یک محدوده در یک صفحه دیگر، همچنین می توانید از روش AutoFit استفاده کنید. در VBA به AutoFit محدوده کپی شده در برگه جدید.
در اینجا، من محدوده ای را از Dataset کپی می کنم برگه AutoFit برگ
اجازه دهید روند را شروع کنیم،
ابتدا، برگه Developer >> Visual Basic
همچنین می توانید از صفحه کلید ALT + F11 برای باز کردن VBA ویرایشگر استفاده کنید.
بعد، پنجره ای از Microsoft Visual Basic برای برنامه ها باز می شود.
سپس، Insert > را باز کنید. ;> Module را انتخاب کنید.
A Module باز می شود سپس کد زیر را در قسمت باز شده تایپ کنید ماژول .
8410
در اینجا، روش فرعی Copy_Range_withFormat_AutoFit
را اعلام کردم ابتدا کاربرگ Dataset را انتخاب کردم. سپس محدوده B1:E10 را برای کپی کردن از برگه موجود به برگه مقصد به نام AutoFit در نظر گرفت.
در اینجا، من از Copy استفاده کردم. روش برای کپی کردن محدوده انتخاب شده و روش AutoFit به طور خودکار ستون های داده شده را متناسب می کند B:E .
در نهایت، ذخیره کد و رفتن به کاربرگ برگردید.
بعد، برگه نمایش >> از ماکروها >> مشاهده ماکروها
➤ یک کادر گفتگو باز می شود.
اکنون، از نام ماکرو Copy_Range_withFormat_AutoFit را نیز در Macros در انتخاب کنید.
در نهایت، اجرا کنید ماکرو انتخاب شده.
بنابراین، محدوده انتخاب شده را در یک صفحه جدید و همچنین AutoFit ستون ها را کپی می کند.
6. VBA یک محدوده را در یک کتاب کار دیگر کپی کنید
اگر می خواهید می توانید محدوده ای را از یک صفحه به برگه دیگر کپی کنید از یک کتاب کار متفاوت.
در اینجا، من گستره ای از Dataset برگ را به Sheet1 از Book1 کپی می کنم کتاب کار.
اجازه دهید روند را شروع کنیم،
ابتدا، برگه Developer >> Visual Basic را انتخاب کنید (y شما همچنین می توانید از ALT + F11 صفحه کلید استفاده کنید)
سپس، Microsoft Visual را باز می کندBasic for Applications.
بعد، Insert >> Module را انتخاب کنید.
A Module باز می شود سپس کد زیر را در Module باز شده تایپ کنید.
2570
در اینجا، رویه فرعی Copy_Range_WithFormat_Toanother_WorkBook
من محدوده را انتخاب کردم B3:E10 از نام برگه مجموعه داده برای کپی کردن از برگه موجود به نام کتاب کار جدید کتاب1 و نام برگ Sheet1 .
در اینجا، من از روش Copy برای کپی کردن محدوده انتخاب شده در کتاب کار جدید استفاده کردم.
در نهایت، کد را ذخیره کنید و به کاربرگ برگردید.
بعد، برگه نمایش >> از ماکروها >> مشاهده ماکروها
➤ یک کادر گفتگو باز می شود.
اکنون، از نام ماکرو Copy_Range_WithFormat_Toanother_WorkBook را انتخاب کنید همچنین کتاب کار را در Macros در انتخاب کنید.
در نهایت، اجرا کنید ماکرو انتخاب شده.
اکنون، محدوده انتخاب شده را از برگه Dataset در کتاب کار دیگری کپی می کند.
7. یک محدوده را در آخرین ردیف یک برگه دیگر کپی کنید
در هر صورت، اگر می خواهید یک محدوده را در صفحه دیگری کپی کنید از یک سلول خاص یا آخرین سلول می توانید این کار را با استفاده از VBA انجام دهید.
قبل از وارد شدن به رویه، می خواهم به شما بگویم که دو برگه جدید گرفته ام که شامل نام کامل، ایمیل، و آدرس .
بیایید ابتدا برگه Dataset2 را مشاهده کنیم.
در اینجا صفحه زیر آخرین سلول است.
در اینجا، من محدوده ای از را کپی می کنم. 2>Dataset2 برگ به زیر آخرین سلول اما از اولین سلول غیر خالی.
برای شروع، برگه Developer >> Visual Basic
بعدی، Microsoft Visual Basic for Applications باز می شود.
سپس، باز می شود درج >> Module را انتخاب کنید.
A Module باز می شود سپس کد زیر را در Module باز شده تایپ کنید.
1997
در اینجا، روش فرعی Copy_Range_BelowLastCell_AnotherSheets را اعلام کردم
ابتدا، برگه را انتخاب کردم Dataset2 و سپس از روش Row برای شمارش آخرین ردیف استفاده کرد و ردیف شمارش شده را در lr نگه داشت.
سپس گرفته شد محدوده A2:C & lr برای کپی کردن از برگه موجود به نام برگه مقصد زیر سلول آخر .
دوباره، از روش ردی برای شمارش آخرین استفاده کرد. ردیف از برگه دیگری به نام زیر آخرین سلول و ردیف شمارش شده را در lrAnotherSheet نگه داشت.
در اینجا، از روش Copy استفاده کردم برای کپی کردن محدوده انتخاب شده و روش AutoFit به طور خودکار ستون های داده شده را متناسب می کند A:C .
در نهایت، کد را ذخیره کنید و برگردید به کاربرگ.
بعد، برگه نمایش >> از ماکروها