របៀបចម្លងសន្លឹកក្នុង Excel ជាមួយ VBA

  • ចែករំលែកនេះ។
Michael Brown

តារាង​មាតិកា

ការបង្រៀនផ្តល់នូវបណ្តុំនៃម៉ាក្រូដើម្បីស្ទួនសន្លឹកក្នុង Excel៖ ចម្លង និងប្តូរឈ្មោះដោយផ្អែកលើតម្លៃក្រឡា ចម្លងសន្លឹកច្រើន ចម្លងសន្លឹកកិច្ចការសកម្មទៅឯកសារផ្សេងទៀតដោយមិនចាំបាច់បើកវា និងច្រើនទៀត។

ការចម្លងសន្លឹកក្នុង Excel ដោយដៃពិតជាលឿន និងត្រង់... ប្រសិនបើអនុវត្តតែម្តង ឬពីរដង។ ការស្ទួនសន្លឹកច្រើនដងគឺគួរឱ្យធុញ និងចំណាយពេលច្រើន។ នៅលើទំព័រនេះ អ្នកនឹងឃើញម៉ាក្រូមានប្រយោជន៍មួយចំនួនដើម្បីធ្វើកិច្ចការនេះដោយស្វ័យប្រវត្តិ។

    Excel VBA ដើម្បីចម្លងសន្លឹកទៅសៀវភៅការងារថ្មី

    ម៉ាក្រូមួយជួរដ៏សាមញ្ញបំផុតនេះធ្វើ ត្រឹមត្រូវតាមឈ្មោះរបស់វាណែនាំ - ចម្លងសន្លឹកសកម្មទៅសៀវភៅការងារថ្មី។

    Public Sub CopySheetToNewWorkbook() activeSheet.Copy End Sub

    ចម្លងសន្លឹកច្រើនក្នុង Excel ជាមួយ 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" ជាមួយនឹងឈ្មោះសៀវភៅការងារគោលដៅរបស់អ្នក។

    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 Sub

    Excel VBA ដើម្បីចម្លងសន្លឹកពីសៀវភៅការងារផ្សេងទៀតដោយគ្មានការបើក

    ម៉ាក្រូនេះអនុញ្ញាតឱ្យអ្នកចម្លងសន្លឹកកិច្ចការពីឯកសារ Excel ផ្សេងទៀតដោយមិនចាំបាច់បើកវា។ សន្លឹកដែលបានចម្លងនឹងត្រូវបានបញ្ចូលនៅចុងបញ្ចប់នៃសៀវភៅការងារបច្ចុប្បន្ន។

    គ្រាន់តែចងចាំថាត្រូវធ្វើការជំនួសពីរបីនៅក្នុងកូដ៖

    • C:\Users\XXX\Documents\ Target_Book.xlsx គួរតែត្រូវបានប្តូរទៅផ្លូវពិត និងឈ្មោះនៃសៀវភៅការងារដែលអ្នកចង់ចម្លងសន្លឹក។
    • Sheet1 គួរតែត្រូវបានជំនួសដោយឈ្មោះសន្លឹកដែលអ្នកចង់ចម្លង។
    Public Sub CopySheetFromClosedWorkbook() Dim sourceBook As Workbook Application.ScreenUpdating = False Set sourceBook = Workbooks។ បើក ( "C:\Users\XXX\Documents\Target_Book.xlsx" ) sourceBook.Sheets("Sheet1") .ចម្លងបន្ទាប់ពី:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) sourceBook។ បិទ Application.ScreenUpdating = True End Sub

    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 ទៅក្នុងសៀវភៅផ្ទាល់ខ្លួនរបស់អ្នក ឬដំណើរការម៉ាក្រូពីសៀវភៅការងារគំរូរបស់យើង។

    របៀបបន្ថែមម៉ាក្រូទៅសៀវភៅការងាររបស់អ្នក

    ដើម្បីបញ្ចូល កូដនៅក្នុងសៀវភៅការងាររបស់អ្នក អនុវត្តជំហានទាំងនេះ៖

    1. បើកសន្លឹកកិច្ចការដែលអ្នកចង់ចម្លង។
    2. ចុច Alt + F11 ដើម្បីបើកកម្មវិធីនិពន្ធ Visual Basic ។
    3. បើក បន្ទះខាងឆ្វេង ចុចកណ្ដុរស្ដាំលើ ThisWorkbook ហើយបន្ទាប់មកចុច Insert > Module
    4. បិទភ្ជាប់កូដនៅក្នុងបង្អួចកូដ។
    5. ចុច 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. បើកសៀវភៅការងារដែលបានទាញយក ហើយបើកមាតិកាប្រសិនបើសួរ។
    2. បើកសៀវភៅការងារផ្ទាល់ខ្លួនរបស់អ្នក ហើយរុករកទៅសន្លឹកដែលអ្នកចង់ ចម្លង។
    3. <1 7>នៅក្នុងសន្លឹកកិច្ចការរបស់អ្នក ចុច Alt + F8 ជ្រើសរើសម៉ាក្រូដែលចាប់អារម្មណ៍ ហើយចុច Run

    នោះហើយជារបៀបដែលអ្នកអាចចម្លង សន្លឹកក្នុង Excel ជាមួយ VBA ។ ខ្ញុំសូមអរគុណសម្រាប់ការអាន ហើយសង្ឃឹមថានឹងបានជួបអ្នកនៅលើប្លក់របស់យើងនៅសប្តាហ៍ក្រោយ!

    ម៉ៃឃើល ប្រោន ជា​អ្នក​ចូល​ចិត្ត​ផ្នែក​បច្ចេកវិទ្យា​ដែល​មាន​ចំណង់​ចំណូល​ចិត្ត​ក្នុង​ការ​សម្រួល​ដំណើរការ​ស្មុគស្មាញ​ដោយ​ប្រើ​ឧបករណ៍​កម្មវិធី។ ជាមួយនឹងបទពិសោធន៍ជាងមួយទស្សវត្សនៅក្នុងឧស្សាហកម្មបច្ចេកវិទ្យា គាត់បានពង្រឹងជំនាញរបស់គាត់នៅក្នុង Microsoft Excel និង Outlook ក៏ដូចជា Google Sheets និង Docs ។ ប្លក់របស់ម៉ៃឃើលគឺឧទ្ទិសដល់ការចែករំលែកចំណេះដឹង និងជំនាញរបស់គាត់ជាមួយអ្នកដទៃ ដោយផ្តល់នូវគន្លឹះ និងមេរៀនដែលងាយស្រួលធ្វើតាមសម្រាប់ការកែលម្អផលិតភាព និងប្រសិទ្ធភាព។ មិនថាអ្នកជាអ្នកជំនាញ ឬអ្នកចាប់ផ្តើមដំបូងទេ ប្លក់របស់ Michael ផ្តល់នូវការយល់ដឹងដ៏មានតម្លៃ និងដំបូន្មានជាក់ស្តែងសម្រាប់ការទទួលបានអត្ថប្រយោជន៍ច្រើនបំផុតពីឧបករណ៍កម្មវិធីសំខាន់ៗទាំងនេះ។