ຂັ້ນຕອນ "Function" ແລະ "Sub" ໃນ VBA

ເນື້ອໃນ

ຟັງຊັນ VBA ໃນຕົວ

ກ່ອນທີ່ທ່ານຈະເລີ່ມຕົ້ນສ້າງຫນ້າທີ່ VBA ຂອງທ່ານເອງ, ມັນເປັນການດີທີ່ຈະຮູ້ວ່າ Excel VBA ມີການເກັບກໍາທີ່ອຸດົມສົມບູນຂອງຫນ້າທີ່ສ້າງມາໃນຕົວທີ່ທ່ານສາມາດນໍາໃຊ້ໃນຂະນະທີ່ຂຽນລະຫັດຂອງທ່ານ.

ບັນຊີລາຍຊື່ຂອງຫນ້າທີ່ເຫຼົ່ານີ້ສາມາດເບິ່ງໄດ້ໃນບັນນາທິການ VBA:

  • ເປີດປຶ້ມວຽກ Excel ແລະເປີດຕົວແກ້ໄຂ VBA (ຄລິກເພື່ອເຮັດອັນນີ້ Alt + F11), ແລະຈາກນັ້ນກົດ F2.
  • ເລືອກຫ້ອງສະໝຸດຈາກລາຍການແບບເລື່ອນລົງຢູ່ດ້ານເທິງຊ້າຍຂອງໜ້າຈໍ VBA.
  • ບັນຊີລາຍຊື່ຂອງຫ້ອງຮຽນ VBA ທີ່ມີໃນຕົວແລະຫນ້າທີ່ຈະປາກົດ. ໃຫ້ຄລິກໃສ່ຊື່ຟັງຊັນເພື່ອສະແດງຄໍາອະທິບາຍສັ້ນໆຂອງມັນຢູ່ດ້ານລຸ່ມຂອງປ່ອງຢ້ຽມ. ກົດ F1 ຈະເປີດໜ້າຊ່ວຍເຫຼືອອອນໄລນ໌ສຳລັບຄຸນສົມບັດນັ້ນ.

ນອກຈາກນັ້ນ, ບັນຊີລາຍຊື່ຄົບຖ້ວນຂອງຟັງຊັນ VBA ທີ່ມີຕົວຢ່າງສາມາດພົບໄດ້ຢູ່ສູນນັກພັດທະນາ Visual Basic.

ຂັ້ນຕອນການກຳນົດເອງ “ຟັງຊັນ” ແລະ “ຍ່ອຍ” ໃນ VBA

ໃນ Excel Visual Basic, ຊຸດຂອງຄໍາສັ່ງທີ່ປະຕິບັດວຽກງານສະເພາະໃດຫນຶ່ງແມ່ນຖືກຈັດໃສ່ໃນຂັ້ນຕອນ. ຫນ້າທີ່ (Function) ຫຼື Sub (ລາຍການຍ່ອຍ). ຄວາມແຕກຕ່າງຕົ້ນຕໍລະຫວ່າງຂັ້ນຕອນ ຫນ້າທີ່ и Sub ແມ່ນ​ວ່າ​ຂັ້ນ​ຕອນ​ການ​ ຫນ້າທີ່ ຜົນຕອບແທນ, ຂັ້ນຕອນ Sub – ບໍ່.

ດັ່ງນັ້ນ, ຖ້າທ່ານຕ້ອງການປະຕິບັດການປະຕິບັດແລະໄດ້ຮັບຜົນໄດ້ຮັບບາງຢ່າງ (ຕົວຢ່າງ, ຜົນລວມຕົວເລກຫຼາຍ), ຫຼັງຈາກນັ້ນ, ຂັ້ນຕອນມັກຈະຖືກນໍາໃຊ້. ຫນ້າທີ່, ແລະເພື່ອພຽງແຕ່ປະຕິບັດບາງການປະຕິບັດ (ຕົວຢ່າງເຊັ່ນ, ປ່ຽນຮູບແບບຂອງກຸ່ມຂອງຈຸລັງ), ທ່ານຈໍາເປັນຕ້ອງເລືອກຂັ້ນຕອນ. Sub.

Arguments

ຂໍ້ມູນຕ່າງໆສາມາດຖືກສົ່ງຜ່ານຂັ້ນຕອນ VBA ໂດຍໃຊ້ການໂຕ້ຖຽງ. ບັນຊີລາຍຊື່ການໂຕ້ຖຽງແມ່ນລະບຸໄວ້ໃນເວລາປະກາດຂັ້ນຕອນ. ສໍາລັບຕົວຢ່າງ, ຂັ້ນຕອນການ Sub ໃນ VBA ເພີ່ມຈຳນວນທີ່ໃຫ້ໄວ້ (ຈຳນວນເຕັມ) ໃສ່ແຕ່ລະເຊລໃນຂອບເຂດທີ່ເລືອກ. ທ່ານສາມາດຜ່ານຕົວເລກນີ້ໄປຫາຂັ້ນຕອນໂດຍໃຊ້ການໂຕ້ຖຽງ, ເຊັ່ນນີ້:

Sub AddToCells(i As Integer) ... End Sub

ຈົ່ງຈື່ໄວ້ວ່າມີການໂຕ້ຖຽງສໍາລັບຂັ້ນຕອນ ຫນ້າທີ່ и Sub ໃນ VBA ແມ່ນທາງເລືອກ. ບາງຂັ້ນຕອນບໍ່ຮຽກຮ້ອງໃຫ້ມີການໂຕ້ຖຽງ.

ການໂຕ້ຖຽງທາງເລືອກ

ຂັ້ນຕອນ VBA ສາມາດມີການໂຕ້ຖຽງທາງເລືອກ. ເຫຼົ່ານີ້ແມ່ນການໂຕ້ຖຽງທີ່ຜູ້ໃຊ້ສາມາດກໍານົດວ່າພວກເຂົາຕ້ອງການ, ແລະຖ້າພວກເຂົາຖືກລະເວັ້ນ, ຂັ້ນຕອນການນໍາໃຊ້ຄ່າເລີ່ມຕົ້ນສໍາລັບພວກເຂົາ.

ກັບໄປທີ່ຕົວຢ່າງທີ່ຜ່ານມາ, ເພື່ອເຮັດໃຫ້ການໂຕ້ຖຽງຈໍານວນເຕັມໄປຫາຫນ້າທີ່ທາງເລືອກ, ມັນຈະຖືກປະກາດເຊັ່ນນີ້:

Sub AddToCells(ທາງເລືອກ i As Integer = 0)

ໃນກໍລະນີນີ້, ການໂຕ້ຖຽງຈໍານວນເຕັມ i ຄ່າເລີ່ມຕົ້ນຈະເປັນ 0.

ສາມາດມີການໂຕ້ຖຽງທາງເລືອກຫຼາຍອັນໃນຂັ້ນຕອນໜຶ່ງ, ທັງໝົດນີ້ຖືກລະບຸໄວ້ໃນຕອນທ້າຍຂອງລາຍການໂຕ້ແຍ້ງ.

ຜ່ານການໂຕ້ຖຽງໂດຍມູນຄ່າແລະການອ້າງອີງ

ການໂຕ້ຖຽງໃນ VBA ສາມາດຖືກສົ່ງຜ່ານຂັ້ນຕອນໃນສອງວິທີ:

  • ByVal - ຖ່າຍທອດການໂຕ້ຖຽງໂດຍມູນຄ່າ. ນີ້ຫມາຍຄວາມວ່າພຽງແຕ່ມູນຄ່າ (ນັ້ນແມ່ນ, ສໍາເນົາຂອງການໂຕ້ຖຽງ) ຖືກສົ່ງກັບຂັ້ນຕອນ, ແລະດັ່ງນັ້ນ, ການປ່ຽນແປງໃດໆທີ່ເຮັດກັບການໂຕ້ຖຽງພາຍໃນຂັ້ນຕອນຈະສູນເສຍໄປເມື່ອຂັ້ນຕອນອອກໄປ.
  • ໂດຍRef - ຜ່ານການໂຕ້ຖຽງໂດຍການອ້າງອິງ. ນັ້ນແມ່ນ, ທີ່ຢູ່ທີ່ແທ້ຈິງຂອງສະຖານທີ່ການໂຕ້ຖຽງໃນຫນ່ວຍຄວາມຈໍາແມ່ນຖືກສົ່ງໄປຫາຂັ້ນຕອນ. ການ​ປ່ຽນ​ແປງ​ໃດໆ​ທີ່​ເກີດ​ຂຶ້ນ​ກັບ​ການ​ໂຕ້​ຖຽງ​ພາຍ​ໃນ​ຂັ້ນ​ຕອນ​ການ​ຈະ​ໄດ້​ຮັບ​ການ​ບັນ​ທຶກ​ໄວ້​ໃນ​ເວ​ລາ​ທີ່​ຂັ້ນ​ຕອນ​ການ​ອອກ​.

ການນໍາໃຊ້ຄໍາສໍາຄັນ ByVal or ໂດຍRef ໃນ​ການ​ປະ​ກາດ​ຂັ້ນ​ຕອນ​ການ​, ທ່ານ​ສາ​ມາດ​ລະ​ບຸ​ວ່າ​ວິ​ທີ​ການ​ໂຕ້​ຖຽງ​ແມ່ນ​ຜ່ານ​ຂັ້ນ​ຕອນ​ການ​. ນີ້ແມ່ນສະແດງຢູ່ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້:

Sub AddToCells(ByVal i As Integer) ... End Sub
ໃນກໍລະນີນີ້, ການໂຕ້ຖຽງຈໍານວນເຕັມ i ຜ່ານໂດຍມູນຄ່າ. ຫຼັງຈາກອອກຈາກຂັ້ນຕອນ Sub ທັງຫມົດທີ່ເຮັດດ້ວຍ i ການປ່ຽນແປງຈະສູນເສຍໄປ.
Sub AddToCells(ByRef i As Integer) ... End Sub
ໃນກໍລະນີນີ້, ການໂຕ້ຖຽງຈໍານວນເຕັມ i ຜ່ານໂດຍອ້າງອີງ. ຫຼັງຈາກອອກຈາກຂັ້ນຕອນ Sub ທັງຫມົດທີ່ເຮັດດ້ວຍ i ການປ່ຽນແປງຈະຖືກເກັບໄວ້ໃນຕົວແປທີ່ຖືກສົ່ງໄປຫາຂັ້ນຕອນ Sub.

ຈື່ໄວ້ວ່າການໂຕ້ຖຽງໃນ VBA ແມ່ນຜ່ານໂດຍການອ້າງອີງໂດຍຄ່າເລີ່ມຕົ້ນ. ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ຖ້າຄໍາສໍາຄັນບໍ່ຖືກນໍາໃຊ້ ByVal or ໂດຍRef, ຫຼັງຈາກນັ້ນການໂຕ້ຖຽງຈະຖືກຜ່ານໂດຍການອ້າງອີງ.

ກ່ອນທີ່ຈະດໍາເນີນຂັ້ນຕອນ ຫນ້າທີ່ и Sub ໃນລາຍລະອຽດເພີ່ມເຕີມ, ມັນຈະເປັນປະໂຫຍດທີ່ຈະພິຈາລະນາລັກສະນະແລະຄວາມແຕກຕ່າງລະຫວ່າງສອງປະເພດຂອງຂັ້ນຕອນນີ້. ຕໍ່ໄປນີ້ແມ່ນການສົນທະນາສັ້ນໆກ່ຽວກັບຂັ້ນຕອນ VBA ຫນ້າທີ່ и Sub ແລະຕົວຢ່າງທີ່ງ່າຍດາຍແມ່ນສະແດງໃຫ້ເຫັນ.

ຂັ້ນຕອນ VBA "Function"

ບັນນາທິການ VBA ຮັບຮູ້ຂັ້ນຕອນ ຫນ້າທີ່ເມື່ອມັນພົບກັບກຸ່ມຄຳສັ່ງທີ່ອ້ອມຮອບລະຫວ່າງຄຳເປີດ ແລະ ປິດຕໍ່ໄປນີ້:

ຟັງຊັນ ... ສິ້ນສຸດຟັງຊັນ

ດັ່ງທີ່ໄດ້ກ່າວກ່ອນຫນ້ານີ້, ຂັ້ນຕອນ ຫນ້າທີ່ ໃນ VBA (ກົງກັນຂ້າມກັບ Sub) ຕອບຄ່າ. ກົດລະບຽບຕໍ່ໄປນີ້ນຳໃຊ້ກັບຄ່າທີ່ສົ່ງຄືນ:

  • ປະເພດຂໍ້ມູນຂອງຄ່າກັບຄືນຈະຕ້ອງຖືກປະກາດຢູ່ໃນສ່ວນຫົວຂອງຂັ້ນຕອນ ຫນ້າທີ່.
  • ຕົວແປທີ່ປະກອບດ້ວຍຄ່າກັບຄືນຈະຕ້ອງມີຊື່ດຽວກັນກັບຂັ້ນຕອນ ຫນ້າທີ່. ຕົວແປນີ້ບໍ່ຈໍາເປັນຕ້ອງຖືກປະກາດແຍກຕ່າງຫາກ, ຍ້ອນວ່າມັນມີຢູ່ສະເຫມີເປັນສ່ວນຫນຶ່ງຂອງຂັ້ນຕອນ. ຫນ້າທີ່.

ນີ້ແມ່ນສະແດງໃຫ້ເຫັນໄດ້ດີໃນຕົວຢ່າງຕໍ່ໄປນີ້.

VBA Function ຕົວຢ່າງ: ການປະຕິບັດທາງຄະນິດສາດກ່ຽວກັບ 3 ຕົວເລກ

ຕໍ່ໄປນີ້ແມ່ນຕົວຢ່າງຂອງລະຫັດຂັ້ນຕອນ VBA ຫນ້າທີ່, ເຊິ່ງໃຊ້ເວລາສາມການໂຕ້ຖຽງຂອງປະເພດ double (ຕົວເລກຈຸດເລື່ອນສອງເທົ່າຄວາມຊັດເຈນ). ດັ່ງນັ້ນ, ຂະບວນການກັບຄືນຈໍານວນປະເພດອື່ນ doubleເທົ່າກັບຜົນລວມຂອງສອງ argument ທໍາອິດລົບກັບ argument ທີສາມ:

Function SumMinus(dNum1 As Double, dNum2 As Double, dNum3 As Double) As Double SumMinus = dNum1 + dNum2 - dNum3 End Function

ຂັ້ນຕອນ VBA ນີ້ງ່າຍດາຍຫຼາຍ ຫນ້າທີ່ ສະ ແດງ ໃຫ້ ເຫັນ ວິ ທີ ການ ຂໍ້ ມູນ ຖືກ ສົ່ງ ໄປ ຫາ ຂັ້ນ ຕອນ ໂດຍ ຜ່ານ ການ ໂຕ້ ຖຽງ. ທ່ານ​ສາ​ມາດ​ເບິ່ງ​ວ່າ​ປະ​ເພດ​ຂໍ້​ມູນ​ທີ່​ໄດ້​ຮັບ​ໂດຍ​ຂັ້ນ​ຕອນ​ການ​ໄດ້​ຖືກ​ກໍາ​ນົດ​ເປັນ​ double (ຄໍາສັບຕ່າງໆເວົ້າ ເປັນສອງເທົ່າ ຫຼັງຈາກບັນຊີລາຍຊື່ຂອງການໂຕ້ຖຽງ). ຕົວຢ່າງນີ້ຍັງສະແດງໃຫ້ເຫັນວ່າຜົນໄດ້ຮັບຂອງຂັ້ນຕອນແນວໃດ ຫນ້າທີ່ ເກັບໄວ້ໃນຕົວແປທີ່ມີຊື່ດຽວກັນກັບຊື່ຂັ້ນຕອນ.

ໂທຫາຂັ້ນຕອນ VBA "Function"

ຖ້າຂັ້ນຕອນງ່າຍໆຂ້າງເທິງ ຫນ້າທີ່ ໃສ່ເຂົ້າໄປໃນໂມດູນໃນບັນນາທິການ Visual Basic, ມັນສາມາດຖືກເອີ້ນຈາກຂັ້ນຕອນ VBA ອື່ນໆຫຼືໃຊ້ໃນແຜ່ນວຽກໃນປື້ມວຽກ Excel.

ໂທຫາຂັ້ນຕອນ VBA "Function" ຈາກຂັ້ນຕອນອື່ນ

ຂັ້ນຕອນ ຫນ້າທີ່ ສາມາດເອີ້ນໄດ້ຈາກຂັ້ນຕອນ VBA ອື່ນໂດຍພຽງແຕ່ມອບໝາຍຂັ້ນຕອນນັ້ນໃຫ້ກັບຕົວແປ. ຕົວຢ່າງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນການໂທຫາຂັ້ນຕອນ ສະຫຼຸບ, ເຊິ່ງໄດ້ກໍານົດໄວ້ຂ້າງເທິງ.

Sub main() Dim total as Double total = SumMinus(5, 4, 3) End Sub

ໂທຫາຂັ້ນຕອນ VBA "Function" ຈາກແຜ່ນວຽກ

ຂັ້ນຕອນ VBA ຫນ້າທີ່ ສາມາດເອີ້ນໄດ້ຈາກແຜ່ນວຽກ Excel ໃນລັກສະນະດຽວກັນກັບຟັງຊັນ Excel ທີ່ມີໃນຕົວອື່ນໆ. ດັ່ງນັ້ນ, ຂັ້ນຕອນທີ່ສ້າງຂຶ້ນໃນຕົວຢ່າງທີ່ຜ່ານມາ ຫນ້າທີ່ - ສະຫຼຸບ ສາມາດເອີ້ນໄດ້ໂດຍການໃສ່ການສະແດງອອກຕໍ່ໄປນີ້ເຂົ້າໄປໃນເຊລຂອງແຜ່ນວຽກ:

=SumMinus(10, 5, 2)

ຂັ້ນຕອນ VBA "ຍ່ອຍ"

ບັນນາທິການ VBA ເຂົ້າໃຈວ່າມີຂັ້ນຕອນຢູ່ທາງຫນ້າຂອງມັນ Subເມື່ອມັນພົບກັບກຸ່ມຄຳສັ່ງທີ່ອ້ອມຮອບລະຫວ່າງຄຳເປີດ ແລະ ປິດຕໍ່ໄປນີ້:

Sub... End Sub

ຂັ້ນຕອນ VBA “Sub”: ຕົວຢ່າງ 1. ການຈັດຮຽງກາງ ແລະການປ່ຽນແປງຂະໜາດຕົວອັກສອນໃນຕາລາງທີ່ເລືອກ

ພິຈາລະນາຕົວຢ່າງຂອງຂັ້ນຕອນ VBA ງ່າຍໆ Sub, ວຽກງານຂອງມັນແມ່ນການປ່ຽນແປງການຈັດຮູບແບບຂອງຊ່ວງທີ່ເລືອກຂອງຕາລາງ. ເຊັລຖືກຕັ້ງໄວ້ກາງ (ທັງແນວຕັ້ງ ແລະແນວນອນ) ແລະຂະໜາດຕົວອັກສອນຖືກປ່ຽນເປັນທີ່ລະບຸໂດຍຜູ້ໃຊ້:

Sub Format_Centered_And_Sized(ທາງເລືອກ iFontSize As Integer = 10) Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Size = iFontSize End Sub

ຂັ້ນຕອນນີ້ Sub ປະຕິບັດການດໍາເນີນການແຕ່ບໍ່ສົ່ງຜົນໄດ້ຮັບ.

ຕົວຢ່າງນີ້ຍັງໃຊ້ການໂຕ້ຖຽງທາງເລືອກ ຂະໜາດຕົວອັກສອນ. ຖ້າການໂຕ້ຖຽງ ຂະໜາດຕົວອັກສອນ ບໍ່ໄດ້ຜ່ານຂັ້ນຕອນ Sub, ຫຼັງຈາກນັ້ນຄ່າເລີ່ມຕົ້ນຂອງມັນແມ່ນ 10. ຢ່າງໃດກໍຕາມ, ຖ້າການໂຕ້ຖຽງ ຂະໜາດຕົວອັກສອນ ຜ່ານ​ຂັ້ນ​ຕອນ Sub, ຫຼັງຈາກນັ້ນຂອບເຂດທີ່ເລືອກຂອງເຊວຈະຖືກຕັ້ງເປັນຂະຫນາດຕົວອັກສອນທີ່ຜູ້ໃຊ້ລະບຸ.

ຂັ້ນຕອນຍ່ອຍຂອງ VBA: ຕົວຢ່າງ 2: ຈັດຮຽງກາງ ແລະ ຕົວອັກສອນໜາໃນຂອບເຂດທີ່ເລືອກຂອງເຊວ

ຂັ້ນຕອນຕໍ່ໄປນີ້ແມ່ນຄ້າຍຄືກັນກັບສິ່ງທີ່ພຽງແຕ່ສົນທະນາ, ແຕ່ເວລານີ້, ແທນທີ່ຈະປັບຂະຫນາດ, ມັນໃຊ້ຮູບແບບຕົວອັກສອນທີ່ກ້າຫານກັບຊ່ວງຂອງເຊນທີ່ເລືອກ. ນີ້ແມ່ນຂັ້ນຕອນຕົວຢ່າງ Sub, ເຊິ່ງບໍ່ມີການໂຕ້ຖຽງ:

Sub Format_Centered_And_Bold() Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Bold = True End Sub

ໂທຫາຂັ້ນຕອນ "ຍ່ອຍ" ໃນ Excel VBA

ໂທຫາຂັ້ນຕອນ VBA "ຍ່ອຍ" ຈາກຂັ້ນຕອນອື່ນ

ເພື່ອໂທຫາຂັ້ນຕອນ VBA Sub ຈາກຂັ້ນຕອນ VBA ອື່ນ, ທ່ານຈໍາເປັນຕ້ອງຂຽນຄໍາສໍາຄັນ ໂທ, ຊື່ຂັ້ນຕອນ Sub ແລະເພີ່ມເຕີມໃນວົງເລັບແມ່ນການໂຕ້ຖຽງຂອງຂັ້ນຕອນ. ນີ້ແມ່ນສະແດງຢູ່ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້:

Sub main() Call Format_Centered_And_Sized(20) End Sub

ຖ້າຂັ້ນຕອນ Format_Centered_And_Sized ມີຫຼາຍກວ່າໜຶ່ງ argument, ພວກມັນຈະຕ້ອງຖືກແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ. ແບບນີ້:

Sub main() Call Format_Centered_And_Sized(arg1, arg2, ...) ສິ້ນສຸດການຍ່ອຍ

ໂທຫາຂັ້ນຕອນ VBA "ຍ່ອຍ" ຈາກແຜ່ນວຽກ

ຂັ້ນຕອນ Sub ບໍ່​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ເຂົ້າ​ໄປ​ໃນ​ເຊ​ລ​ແຜ່ນ Excel ໂດຍ​ກົງ​, ດັ່ງ​ທີ່​ສາ​ມາດ​ເຮັດ​ໄດ້​ດ້ວຍ​ຂັ້ນ​ຕອນ​ການ​ ຫນ້າທີ່ເນື່ອງຈາກວ່າຂັ້ນຕອນ Sub ບໍ່ສົ່ງຄືນຄ່າ. ຢ່າງໃດກໍຕາມ, ຂັ້ນຕອນ Sub, ເຊິ່ງບໍ່ມີການໂຕ້ຖຽງແລະຖືກປະກາດວ່າເປັນ ສາທາລະນະ (ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້) ຈະມີໃຫ້ຜູ້ໃຊ້ຂອງແຜ່ນວຽກ. ດັ່ງນັ້ນ, ຖ້າຫາກວ່າຂັ້ນຕອນທີ່ງ່າຍດາຍໄດ້ປຶກສາຫາລືຂ້າງເທິງ Sub ໃສ່ເຂົ້າໄປໃນໂມດູນໃນ Visual Basic Editor, ຂັ້ນຕອນ Format_Centered_And_Bold ຈະມີໃຫ້ໃຊ້ໃນເອກະສານວຽກ Excel, ແລະຂັ້ນຕອນ Format_Centered_And_Sized – ຈະ​ບໍ່​ມີ​ເພາະ​ວ່າ​ມັນ​ມີ​ການ​ໂຕ້​ຖຽງ​.

ນີ້ແມ່ນວິທີທີ່ງ່າຍທີ່ຈະດໍາເນີນການ (ຫຼືປະຕິບັດ) ຂັ້ນຕອນ Sub, ເຂົ້າ​ເຖິງ​ໄດ້​ຈາກ​ແຜ່ນ​ວຽກ​:

  • ຫນັງສືພິມ Alt + F8 (ກົດ​ປຸ່ມ​ alt ແລະໃນຂະນະທີ່ຖືມັນລົງ, ກົດປຸ່ມ F8).
  • ໃນບັນຊີລາຍຊື່ຂອງມະຫາພາກທີ່ປາກົດ, ເລືອກອັນທີ່ທ່ານຕ້ອງການທີ່ຈະດໍາເນີນການ.
  • ຫນັງສືພິມ ການດໍາເນີນງານ (ແລ່ນ)

ເພື່ອປະຕິບັດຂັ້ນຕອນ Sub ໄວ​ແລະ​ງ່າຍ​ດາຍ​, ທ່ານ​ສາ​ມາດ​ກໍາ​ນົດ​ທາງ​ລັດ​ແປ້ນ​ພິມ​ກັບ​ມັນ​. ສໍາລັບການນີ້:

  • ຫນັງສືພິມ Alt + F8.
  • ໃນບັນຊີລາຍຊື່ຂອງມະຫາພາກທີ່ປາກົດ, ເລືອກເອົາອັນທີ່ທ່ານຕ້ອງການກໍານົດທາງລັດແປ້ນພິມໃຫ້.
  • ຫນັງສືພິມ ຕົວກໍານົດການ (ຕົວເລືອກ) ແລະໃນກ່ອງໂຕ້ຕອບທີ່ປາກົດ, ໃຫ້ໃສ່ທາງລັດແປ້ນພິມ.
  • ຫນັງສືພິມ OK ແລະປິດກ່ອງໂຕ້ຕອບ Macro (ມະຫາພາກ).

ເອົາໃຈໃສ່: ເມື່ອກໍານົດທາງລັດແປ້ນພິມໃຫ້ກັບມະຫາພາກ, ໃຫ້ແນ່ໃຈວ່າມັນບໍ່ໄດ້ຖືກໃຊ້ເປັນມາດຕະຖານໃນ Excel (ຕົວຢ່າງ: Ctrl + C). ຖ້າທ່ານເລືອກທາງລັດແປ້ນພິມທີ່ມີຢູ່ກ່ອນແລ້ວ, ມັນຈະຖືກມອບໃຫ້ກັບ macro, ແລະດັ່ງນັ້ນ, ຜູ້ໃຊ້ອາດຈະເລີ່ມ macro ໂດຍບັງເອີນ.

ຂອບເຂດຂັ້ນຕອນຂອງ VBA

ພາກທີ 2 ຂອງບົດສອນນີ້ ໄດ້ສົນທະນາກ່ຽວກັບຂອບເຂດຂອງຕົວແປ ແລະຄ່າຄົງທີ່ ແລະບົດບາດຂອງຄໍາສໍາຄັນ. ສາທາລະນະ и ສ່ວນຕົວ. ຄໍາສໍາຄັນເຫຼົ່ານີ້ຍັງສາມາດຖືກນໍາໃຊ້ກັບຂັ້ນຕອນ VBA:

Public Sub AddToCells(i As Integer) ... End Sub
ຖ້າການປະກາດຂັ້ນຕອນແມ່ນນໍາຫນ້າດ້ວຍຄໍາສໍາຄັນ ສາທາລະນະ, ຫຼັງຈາກນັ້ນຂັ້ນຕອນຈະມີຢູ່ໃນທຸກໂມດູນໃນໂຄງການ VBA ນັ້ນ.
ສ່ວນຍ່ອຍ AddToCells(i As Integer) ... End Sub
ຖ້າການປະກາດຂັ້ນຕອນແມ່ນນໍາຫນ້າດ້ວຍຄໍາສໍາຄັນ ສ່ວນຕົວ, ຫຼັງຈາກນັ້ນຂັ້ນຕອນນີ້ຈະສາມາດໃຊ້ໄດ້ສໍາລັບໂມດູນປະຈຸບັນເທົ່ານັ້ນ. ມັນບໍ່ສາມາດຖືກເອີ້ນໃນຂະນະທີ່ຢູ່ໃນໂມດູນອື່ນຫຼືຈາກປື້ມວຽກ Excel.

ຈົ່ງຈື່ໄວ້ວ່າຖ້າກ່ອນທີ່ຈະປະກາດຂັ້ນຕອນ VBA ຫນ້າທີ່ or Sub ຄໍາສໍາຄັນບໍ່ໄດ້ຖືກໃສ່, ຄຸນສົມບັດເລີ່ມຕົ້ນແມ່ນຖືກກໍານົດສໍາລັບຂັ້ນຕອນ ສາທາລະນະ (ນັ້ນແມ່ນ, ມັນຈະມີຢູ່ທົ່ວທຸກແຫ່ງໃນໂຄງການ VBA ນີ້). ນີ້ແມ່ນກົງກັນຂ້າມກັບການປະກາດຕົວແປ, ເຊິ່ງໂດຍຄ່າເລີ່ມຕົ້ນແມ່ນ ສ່ວນຕົວ.

ອອກຈາກຂັ້ນຕອນ VBA ກ່ອນ "Function" ແລະ "Sub"

ຖ້າທ່ານຕ້ອງການຢຸດການປະຕິບັດຂັ້ນຕອນ VBA ຫນ້າທີ່ or Sub, ໂດຍບໍ່ມີການລໍຖ້າສໍາລັບການສິ້ນສຸດທໍາມະຊາດຂອງຕົນ, ຫຼັງຈາກນັ້ນສໍາລັບການນີ້ມີຜູ້ປະກອບການ ອອກຈາກຟັງຊັນ и ອອກຈາກ Sub. ການນໍາໃຊ້ຕົວປະຕິບັດການເຫຼົ່ານີ້ແມ່ນສະແດງໃຫ້ເຫັນຂ້າງລຸ່ມນີ້ໂດຍໃຊ້ຂັ້ນຕອນງ່າຍໆເປັນຕົວຢ່າງ. ຫນ້າທີ່A ທີ່ຄາດວ່າຈະໄດ້ຮັບການໂຕ້ຖຽງໃນທາງບວກເພື່ອປະຕິບັດການດໍາເນີນງານຕື່ມອີກ. ຖ້າຄ່າທີ່ບໍ່ແມ່ນຄ່າບວກຖືກສົ່ງກັບຂັ້ນຕອນ, ຫຼັງຈາກນັ້ນບໍ່ສາມາດດໍາເນີນການຕື່ມອີກ, ດັ່ງນັ້ນຜູ້ໃຊ້ຄວນໄດ້ຮັບການສະແດງຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດແລະຂັ້ນຕອນຄວນອອກຈາກທັນທີ:

ຟັງຊັນ VAT_Amount(sVAT_Rate As Single) As Single VAT_Amount = 0 ຖ້າ sVAT_Rate <= 0 ຫຼັງຈາກນັ້ນ MsgBox "ຄາດວ່າຈະເປັນຄ່າບວກຂອງ sVAT_Rate ແຕ່ໄດ້ຮັບ" & sVAT_Rate Exit Function End ຖ້າ ... End Function

ກະລຸນາສັງເກດວ່າກ່ອນທີ່ຈະສໍາເລັດຂັ້ນຕອນ ຫນ້າທີ່ - VAT_Amount, ຟັງຊັນ VBA ທີ່ມີໃນຕົວຖືກໃສ່ເຂົ້າໄປໃນລະຫັດ MsgBox, ເຊິ່ງສະແດງປ໊ອບອັບເຕືອນໃຫ້ຜູ້ໃຊ້.

ອອກຈາກ Reply ເປັນ