តារាងមាតិកា
ការបង្រៀនផ្តល់នូវបណ្តុំនៃម៉ាក្រូដើម្បីស្ទួនសន្លឹកក្នុង Excel៖ ចម្លង និងប្តូរឈ្មោះដោយផ្អែកលើតម្លៃក្រឡា ចម្លងសន្លឹកច្រើន ចម្លងសន្លឹកកិច្ចការសកម្មទៅឯកសារផ្សេងទៀតដោយមិនចាំបាច់បើកវា និងច្រើនទៀត។
ការចម្លងសន្លឹកក្នុង Excel ដោយដៃពិតជាលឿន និងត្រង់... ប្រសិនបើអនុវត្តតែម្តង ឬពីរដង។ ការស្ទួនសន្លឹកច្រើនដងគឺគួរឱ្យធុញ និងចំណាយពេលច្រើន។ នៅលើទំព័រនេះ អ្នកនឹងឃើញម៉ាក្រូមានប្រយោជន៍មួយចំនួនដើម្បីធ្វើកិច្ចការនេះដោយស្វ័យប្រវត្តិ។
Excel VBA ដើម្បីចម្លងសន្លឹកទៅសៀវភៅការងារថ្មី
ម៉ាក្រូមួយជួរដ៏សាមញ្ញបំផុតនេះធ្វើ ត្រឹមត្រូវតាមឈ្មោះរបស់វាណែនាំ - ចម្លងសន្លឹកសកម្មទៅសៀវភៅការងារថ្មី។
ចម្លងសន្លឹកច្រើនក្នុង Excel ជាមួយ VBA
ប្រសិនបើអ្នកចង់ ចម្លងសន្លឹកជាច្រើនពីសៀវភៅការងារសកម្មទៅថ្មីមួយ ជ្រើសរើសសន្លឹកកិច្ចការទាំងអស់ដែលចាប់អារម្មណ៍ ហើយដំណើរការម៉ាក្រូនេះ៖
Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets.Copy End SubExcel VBA ដើម្បីចម្លងសន្លឹកទៅសៀវភៅការងារផ្សេងទៀត
អាស្រ័យលើកន្លែងដែលអ្នកចង់បញ្ចូលសន្លឹកដែលបានចម្លង សូមប្រើម៉ាក្រូមួយក្នុងចំណោមម៉ាក្រូខាងក្រោម។
ចម្លងសន្លឹកទៅដើមសៀវភៅការងារផ្សេងទៀត
ម៉ាក្រូនេះចម្លងសន្លឹកសកម្មពីមុន សន្លឹកកិច្ចការផ្សេងទៀតទាំងអស់នៅក្នុងឯកសារទិសដៅ Book1 ក្នុងឧទាហរណ៍នេះ។ ដើម្បីចម្លងទៅឯកសារផ្សេងទៀត សូមជំនួស "Book1.xlsx" ជាមួយនឹងឈ្មោះពេញនៃសៀវភៅការងារគោលដៅរបស់អ្នក។
អនុសាធារណៈCopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks( "Book1.xlsx" ).Sheets(1) End Subចម្លងសន្លឹកទៅចុងបញ្ចប់នៃសៀវភៅការងារមួយផ្សេងទៀត
បំណែកនៃកូដនេះស្ទួនសន្លឹកកិច្ចការសកម្ម និង ដាក់ច្បាប់ចម្លងនៅចុងបញ្ចប់នៃ Book1 ។ ជាថ្មីម្តងទៀត សូមចងចាំដើម្បីជំនួស "Book1.xlsx" ជាមួយនឹងឈ្មោះសៀវភៅការងារគោលដៅរបស់អ្នក។
Public Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx" " ).Worksheets.Count) បញ្ចប់ Subចំណាំ។ ដើម្បីឱ្យម៉ាក្រូដំណើរការ សៀវភៅការងារគោលដៅត្រូវតែរក្សាទុកនៅលើដ្រាយវ៍រឹង ឬបណ្តាញរបស់អ្នក។
ចម្លងសន្លឹកទៅសៀវភៅការងារដែលបានជ្រើសរើស
ដើម្បីអាចចម្លងសន្លឹកបច្ចុប្បន្នទៅសៀវភៅការងារដែលបើកណាមួយ។ អ្នកអាចបង្កើត UserForm (ដាក់ឈ្មោះ UserForm1 ) ជាមួយនឹង ListBox control ( named ListBox1 ) និងប៊ូតុងពីរ៖
បន្ទាប់ ចុចពីរដងលើទម្រង់ ហើយបិទភ្ជាប់កូដខាងក្រោមក្នុងបង្អួចកូដ៖
Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For each wbk In Application.Workbooks ListBox1.AddItem (wbk.Name) Next End Sub Private Sub 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 នៅនឹងកន្លែង អ្នកអាចប្រើមួយក្នុងចំណោមខាងក្រោម ម៉ាក្រូដើម្បីចម្លងសន្លឹកសកម្មទៅសៀវភៅការងារដែលអ្នកជ្រើសរើស។
ចម្លងសន្លឹកទៅ ការចាប់ផ្តើមនៃសៀវភៅការងារដែលបានជ្រើសរើស :
Public Sub CopySheetToBeginningAnotherWorkbook() ផ្ទុក UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook" " ) បន្ទាប់មក activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook).Sheets(1) End ប្រសិនបើ Unload UserForm1 End Subចម្លងសន្លឹកទៅ ចុងបញ្ចប់នៃសៀវភៅការងារដែលបានជ្រើសរើស :
Public Sub CopySheetToEndAnotherWorkbook() ផ្ទុក UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "") បន្ទាប់មក activeSheet.Copy After:=Workbooks( _ UserForm1.SelectedWorkbook).Sheets( _ Workbooks(UserForm1.Selected Workbook) ) Unload_Worksheet If End Subនៅពេលដំណើរការក្នុង Excel ម៉ាក្រូនឹងបង្ហាញអ្នកនូវបញ្ជីនៃសៀវភៅការងារដែលបានបើកបច្ចុប្បន្នទាំងអស់។ អ្នកជ្រើសរើសសន្លឹកដែលត្រូវការ ហើយចុចយល់ព្រម៖
ម៉ាក្រូ Excel ដើម្បីចម្លងសន្លឹក និងប្តូរឈ្មោះ
នៅពេលអ្នកចម្លងសន្លឹកក្នុង Excel ចម្លងត្រូវបានផ្តល់ ឈ្មោះក្នុងទម្រង់លំនាំដើមដូចជា Sheet1 (2) ។ ម៉ាក្រូខាងក្រោមអាចជួយអ្នកពីបញ្ហាក្នុងការផ្លាស់ប្តូរឈ្មោះលំនាំដើមដោយដៃ។
កូដនេះស្ទួនសន្លឹកកិច្ចការសកម្ម ដាក់ឈ្មោះច្បាប់ចម្លងជា "សន្លឹកសាកល្បង" (អ្នកអាចជំនួសវាដោយឈ្មោះផ្សេងទៀតដែលអ្នកចូលចិត្ត) ហើយដាក់សន្លឹកដែលបានចម្លងនៅចុងបញ្ចប់នៃសៀវភៅការងារបច្ចុប្បន្ន។
Public Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name ="Test Sheet" End Subដើម្បីអនុញ្ញាតឱ្យអ្នកប្រើ បញ្ជាក់ឈ្មោះសម្រាប់សន្លឹកដែលបានចម្លង សូមប្រើកូដនេះ៖
Public Sub CopySheetAndRename() Dim newName As String On Error Resume Next newName = InputBox( "បញ្ចូលឈ្មោះសម្រាប់សន្លឹកកិច្ចការដែលបានចម្លង") If newName "" បន្ទាប់មក activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End ប្រសិនបើ End Subនៅពេលដំណើរការ ម៉ាក្រូ បង្ហាញប្រអប់បញ្ចូលខាងក្រោម ដែលអ្នកវាយឈ្មោះដែលចង់បាន ហើយចុច OK៖
Excel macro ដើម្បីចម្លងសន្លឹក និងប្តូរឈ្មោះដោយផ្អែកលើតម្លៃក្រឡា
ក្នុង ស្ថានភាពខ្លះ វាអាចងាយស្រួលជាងក្នុងការដាក់ឈ្មោះច្បាប់ចម្លងជាមួយនឹងតម្លៃក្រឡាជាក់លាក់ ឧទាហរណ៍ ក្បាលជួរឈរ។ សម្រាប់ការនេះ អ្នកគ្រាន់តែយកលេខកូដខាងលើ ហើយផ្គត់ផ្គង់តម្លៃនៃ ក្រឡាដែលបានជ្រើសរើសបច្ចុប្បន្ន ទៅប្រអប់បញ្ចូលដោយស្វ័យប្រវត្តិ។ ដូចនឹងឧទាហរណ៍មុន ច្បាប់ចម្លងនឹងត្រូវបានដាក់នៅចុងបញ្ចប់នៃសៀវភៅការងារសកម្ម។
ផ្នែកដែលពិបាកបំផុតគឺដើម្បីឱ្យអ្នកប្រើប្រាស់របស់អ្នកតែងតែជ្រើសរើសក្រឡាត្រឹមត្រូវមុនពេលដំណើរការ។ the macro :)
Public Sub CopySheetAndRenameByCell() Dim newName As String On Error Resume Next new newName = InputBox( "Enter the name for the copyed worksheet", "Copy worksheet", ActiveCell.Value) If newName "" បន្ទាប់មក activeSheet ។ Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End ប្រសិនបើ End Subជាជម្រើស អ្នកអាច hardcode អាសយដ្ឋានរបស់ក្រឡា ដែលច្បាប់ចម្លងគួរដាក់ឈ្មោះ ក្រឡា A1 ក្នុងកូដខាងក្រោម។ ដើម្បីដាក់ឈ្មោះសន្លឹកកិច្ចការដែលបានចម្លងដោយផ្អែកលើក្រឡាមួយទៀត ជំនួស A1 ដោយឯកសារយោងក្រឡាដែលសមស្រប។
Public Sub CopySheetAndRenameByCell2() Dim wks As Worksheet Set wks = activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) ប្រសិនបើ wks.Range ( "A1" .តម្លៃ "" បន្ទាប់មកនៅលើកំហុសបន្តបន្ទាប់ activeSheet.Name = wks.Range( "A1" ) .តម្លៃបញ្ចប់ ប្រសិនបើ wks.Activate End Subម៉ាក្រូ ដើម្បីចម្លងសន្លឹកកិច្ចការទៅសៀវភៅការងារបិទជិត
ម៉ាក្រូនេះចម្លងសន្លឹកសកម្មទៅចុងបញ្ចប់នៃសៀវភៅការងារបិទជិត។ ឈ្មោះសៀវភៅការងារផ្សេងទៀតមិនត្រូវបានបញ្ជាក់នៅក្នុងកូដទេ - ម៉ាក្រូនឹងបើកបង្អួច Windows Explorer ស្តង់ដារ ហើយអនុញ្ញាតឱ្យអ្នកជ្រើសរើសឯកសារគោលដៅណាមួយ៖
បន្ទាប់ពីអ្នកជ្រើសរើសឯកសារ ហើយចុច បើក ម៉ាក្រូនឹងចម្លងសន្លឹកសកម្ម ហើយបិទសៀវភៅការងារគោលដៅដោយស្វ័យប្រវត្តិ។
Public Sub CopySheetToClosedWorkbook() Dim fileName Dim closedBook As Workbook Dim currentSheet As Worksheet fileName = Application.GetOpenFilename( "Excel Files (*.xlsx), *.xlsx" ) ប្រសិនបើ fileName False បន្ទាប់មក Application.ScreenUpdating = False Set currentSheet = Application.activeSheet Set closedBook = Workbooks។ បើក (fileName) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count) closedBook។ Close ( True ) Application.ScreenUpdating = True End ប្រសិនបើ End SubExcel VBA ដើម្បីចម្លងសន្លឹកពីសៀវភៅការងារផ្សេងទៀតដោយគ្មានការបើក
ម៉ាក្រូនេះអនុញ្ញាតឱ្យអ្នកចម្លងសន្លឹកកិច្ចការពីឯកសារ Excel ផ្សេងទៀតដោយមិនចាំបាច់បើកវា។ សន្លឹកដែលបានចម្លងនឹងត្រូវបានបញ្ចូលនៅចុងបញ្ចប់នៃសៀវភៅការងារបច្ចុប្បន្ន។
គ្រាន់តែចងចាំថាត្រូវធ្វើការជំនួសពីរបីនៅក្នុងកូដ៖
- C:\Users\XXX\Documents\ Target_Book.xlsx គួរតែត្រូវបានប្តូរទៅផ្លូវពិត និងឈ្មោះនៃសៀវភៅការងារដែលអ្នកចង់ចម្លងសន្លឹក។
- Sheet1 គួរតែត្រូវបានជំនួសដោយឈ្មោះសន្លឹកដែលអ្នកចង់ចម្លង។
Excel VBA ដើម្បីស្ទួនសន្លឹកច្រើនដង
ជួនកាល អ្នកប្រហែលជាត្រូវចម្លងសន្លឹកដូចគ្នាច្រើនដង ជាឧទាហរណ៍ ដើម្បីសាកល្បងរូបមន្តផ្សេងគ្នាលើសំណុំទិន្នន័យដូចគ្នា។ នេះអាចត្រូវបានធ្វើយ៉ាងងាយស្រួលជាមួយម៉ាក្រូខាងក្រោម។
Public Sub DuplicateSheetMultipleTimes() Dim n As Integer On Error Resume Next n = InputBox( "តើអ្នកចង់បង្កើតសន្លឹកសកម្មប៉ុន្មាន?") ប្រសិនបើ n > = 1 បន្ទាប់មក For numtimes = 1 To n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End ប្រសិនបើ End Subបើកសន្លឹកដើម ដំណើរការម៉ាក្រូ បញ្ជាក់ចំនួនច្បាប់ចម្លងនៃសន្លឹកសកម្មអ្នកចង់បង្កើត ហើយចុច យល់ព្រម :
របៀបចម្លងសន្លឹកក្នុង Excel ជាមួយ VBA
ដើម្បីចម្លងសន្លឹកក្នុង Excel ជាមួយនឹងម៉ាក្រូមួយក្នុងចំណោមម៉ាក្រូខាងលើ អ្នកអាចបញ្ចូលកូដ VBA ទៅក្នុងសៀវភៅផ្ទាល់ខ្លួនរបស់អ្នក ឬដំណើរការម៉ាក្រូពីសៀវភៅការងារគំរូរបស់យើង។
របៀបបន្ថែមម៉ាក្រូទៅសៀវភៅការងាររបស់អ្នក
ដើម្បីបញ្ចូល កូដនៅក្នុងសៀវភៅការងាររបស់អ្នក អនុវត្តជំហានទាំងនេះ៖
- បើកសន្លឹកកិច្ចការដែលអ្នកចង់ចម្លង។
- ចុច Alt + F11 ដើម្បីបើកកម្មវិធីនិពន្ធ Visual Basic ។
- បើក បន្ទះខាងឆ្វេង ចុចកណ្ដុរស្ដាំលើ ThisWorkbook ហើយបន្ទាប់មកចុច Insert > Module ។
- បិទភ្ជាប់កូដនៅក្នុងបង្អួចកូដ។
- ចុច F5 ដើម្បីដំណើរការម៉ាក្រូ។
សម្រាប់ការណែនាំជាជំហាន ៗ លម្អិត សូមមើល របៀបបញ្ចូលកូដ VBA ក្នុង Excel។
របៀបដំណើរការ ម៉ាក្រូពីសៀវភៅការងារគំរូរបស់យើង
ជាជម្រើស អ្នកអាចទាញយកសៀវភៅការងារគំរូរបស់យើងទៅស្ទួនសន្លឹក Excel ហើយដំណើរការកូដពីទីនោះ។
សៀវភៅការងារគំរូមានម៉ាក្រូដូចខាងក្រោម៖
CopySheetToNewWorkbook - ចម្លង cu rrent worksheet to a new workbook.
CopySelectedSheets - ចម្លងសន្លឹកច្រើនដែលអ្នកជ្រើសរើសទៅសៀវភៅការងារថ្មី។
CopySheetToBeginningAnotherWorkbook - ចម្លងសន្លឹកសកម្ម ទៅដើមសៀវភៅការងារមួយទៀត។
CopySheetToEndAnotherWorkbook - ចម្លងសន្លឹកសកម្មទៅចុងបញ្ចប់នៃឯកសារ Excel ផ្សេងទៀត។
CopySheetAndRename - ស្ទួនចរន្ត សន្លឹក,ប្តូរឈ្មោះវាដូចដែលបានបញ្ជាក់ដោយអ្នកប្រើប្រាស់ ហើយដាក់ច្បាប់ចម្លងបន្ទាប់ពីសន្លឹកផ្សេងទៀតទាំងអស់នៅក្នុងសៀវភៅការងារបច្ចុប្បន្ន។
CopySheetAndRenamePredefined - ស្ទួនសន្លឹកសកម្ម ផ្តល់ឈ្មោះ hardcoded ទៅច្បាប់ចម្លង ហើយដាក់វា នៅចុងបញ្ចប់នៃសៀវភៅការងារបច្ចុប្បន្ន។
CopySheetAndRenameByCell - ធ្វើច្បាប់ចម្លងនៃសន្លឹកសកម្ម ហើយប្តូរឈ្មោះវាដោយផ្អែកលើតម្លៃក្រឡាដែលបានជ្រើសរើស។
CopySheetAndRenameByCell2 - ចម្លងសន្លឹកសកម្ម ហើយប្តូរឈ្មោះវាដោយផ្អែកលើអាសយដ្ឋានក្រឡាដែលសរសេរកូដរឹង។
CopySheetToClosedWorkbook - អនុញ្ញាតឱ្យអ្នកចម្លងសន្លឹកទៅសៀវភៅការងារបិទជិត។
CopySheetFromClosedWorkbook - អនុញ្ញាតឱ្យអ្នកចម្លងសន្លឹកពីឯកសារ Excel ផ្សេងទៀតដោយមិនចាំបាច់បើកវា។
DuplicateSheetMultipleTimes - អនុញ្ញាតឱ្យអ្នកចម្លងសន្លឹកក្នុង Excel ច្រើនដង។
ដើម្បី ដំណើរការម៉ាក្រូក្នុង Excel របស់អ្នក ដោយគ្រាន់តែធ្វើដូចខាងក្រោម៖
- បើកសៀវភៅការងារដែលបានទាញយក ហើយបើកមាតិកាប្រសិនបើសួរ។
- បើកសៀវភៅការងារផ្ទាល់ខ្លួនរបស់អ្នក ហើយរុករកទៅសន្លឹកដែលអ្នកចង់ ចម្លង។ <1 7>នៅក្នុងសន្លឹកកិច្ចការរបស់អ្នក ចុច Alt + F8 ជ្រើសរើសម៉ាក្រូដែលចាប់អារម្មណ៍ ហើយចុច Run ។
នោះហើយជារបៀបដែលអ្នកអាចចម្លង សន្លឹកក្នុង Excel ជាមួយ VBA ។ ខ្ញុំសូមអរគុណសម្រាប់ការអាន ហើយសង្ឃឹមថានឹងបានជួបអ្នកនៅលើប្លក់របស់យើងនៅសប្តាហ៍ក្រោយ!