VBA ක්‍රියාකරුවන් සහ ගොඩනඟන ලද කාර්යයන්

Excel VBA ප්රකාශයන්

එක්සෙල් හි VBA කේතය ලිවීමේදී, සෑම පියවරකදීම බිල්ට් ක්‍රියාකරුවන් කට්ටලයක් භාවිතා වේ. මෙම ක්‍රියාකරුවන් ගණිතමය, නූල්, සංසන්දනය සහ තාර්කික ක්‍රියාකරුවන් ලෙස බෙදා ඇත. ඊළඟට, අපි එක් එක් ක්‍රියාකරුවන් කණ්ඩායමක් විස්තරාත්මකව බලමු.

ගණිතමය ක්රියාකරුවන්

ප්‍රධාන VBA ගණිත ක්‍රියාකරුවන් පහත වගුවේ ලැයිස්තුගත කර ඇත.

වගුවේ දකුණු තීරුව වරහන් නොමැති විට පෙරනිමි ක්‍රියාකරු ප්‍රමුඛතාවය පෙන්වයි. ප්‍රකාශනයකට වරහන් එකතු කිරීමෙන්, ඔබට අවශ්‍ය පරිදි VBA ප්‍රකාශ ක්‍රියාත්මක වන අනුපිළිවෙල වෙනස් කළ හැක.

ක්රියාකරුකටයුතුප්රමුඛත්වය

(1 - ඉහළම; 5 - අඩුම)

^ඝාතන ක්රියාකරු1
*ගුණ කිරීමේ ක්රියාකරු2
/අංශ ක්රියාකරු2
ඉතිරියකින් තොරව බෙදීම - ඉතිරියක් නොමැතිව සංඛ්යා දෙකක් බෙදීමේ ප්රතිඵලය ලබා දෙයි. උදාහරණ වශයෙන්, 74 ප්රතිඵලය ආපසු ලබා දෙනු ඇත 13
ධෛර්යයModulo (ඉතිරි) ක්රියාකරු - සංඛ්යා දෙකක් බෙදීමෙන් පසු ඉතිරිය ලබා දෙයි. උදාහරණ වශයෙන්, 8 එරෙහිව 3 ප්රතිඵලය ආපසු ලබා දෙනු ඇත 2.4
+එකතු කිරීමේ ක්රියාකරු5
-අඩුකිරීමේ ක්රියාකරු5

සංගීත ක්‍රියාකරුවන්

Excel VBA හි මූලික තන්තු ක්‍රියාකරු වන්නේ concatenation operator වේ & (ඒකාබද්ධ):

ක්රියාකරුකටයුතු
&concatenation ක්රියාකරු. උදාහරණයක් ලෙස, ප්රකාශනය "ඒ" සහ "බී" ප්රතිඵලය ආපසු ලබා දෙනු ඇත AB.

සංසන්දනාත්මක ක්‍රියාකරුවන්

සංසන්දන ක්‍රියාකරුවන් සංඛ්‍යා හෝ නූල් දෙකක් සංසන්දනය කිරීමට සහ වර්ගයේ බූලියන් අගයක් ලබා දීමට භාවිතා කරයි බූලියන් (ඇත්ත හෝ වැරදි). ප්‍රධාන Excel VBA සංසන්දන ක්‍රියාකරුවන් මෙම වගුවේ ලැයිස්තුගත කර ඇත:

ක්රියාකරුකටයුතු
=සමානව
<>සමාන නොවේ
<අඩු
>Больше
<=වඩා අඩු හෝ සමාන
>=වඩා විශාල හෝ සමාන

තාර්කික ක්‍රියාකරුවන්

සංසන්දන ක්‍රියාකරුවන් වැනි තාර්කික ක්‍රියාකරුවන්, වර්ගයේ බූලියන් අගයක් ලබා දෙයි බූලියන් (ඇත්ත හෝ වැරදි). Excel VBA හි ප්‍රධාන තාර්කික ක්‍රියාකරුවන් පහත වගුවේ ලැයිස්තුගත කර ඇත:

ක්රියාකරුකටයුතු
සහසංයෝජන මෙහෙයුම, තාර්කික ක්රියාකරු И. උදාහරණයක් ලෙස, ප්රකාශනය ඒ සහ බී නැවත පැමිණේ සැබෑ, නම් A и B දෙකම සමාන වේ සැබෑ, එසේ නොමැතිනම් ආපසු බොරු.
Orවිසන්ධි මෙහෙයුම, තාර්කික ක්රියාකරු OR. උදාහරණයක් ලෙස, ප්රකාශනය ඒ හෝ බී නැවත පැමිණේ සැබෑ, නම් A or B සමාන වේ සැබෑ, සහ නැවත පැමිණෙනු ඇත බොරු, නම් A и B දෙකම සමාන වේ බොරු.
නැතනිෂේධන මෙහෙයුම, තාර්කික ක්රියාකරු නැත. උදාහරණයක් ලෙස, ප්රකාශනය A නොවේ නැවත පැමිණේ සැබෑ, නම් A සමානවම බොරු, හෝ ආපසු බොරු, නම් A සමානවම සැබෑ.

ඉහත වගුව VBA හි ඇති සියලුම තාර්කික ක්‍රියාකරුවන් ලැයිස්තුගත නොකරයි. තාර්කික ක්‍රියාකරුවන්ගේ සම්පූර්ණ ලැයිස්තුවක් දෘශ්‍ය මූලික සංවර්ධක මධ්‍යස්ථානයෙන් සොයාගත හැකිය.

ගොඩනඟන ලද කාර්යයන්

කේතය ලිවීමේදී භාවිතා කළ හැකි VBA හි බොහෝ ගොඩනඟන ලද කාර්යයන් තිබේ. වඩාත් බහුලව භාවිතා වන සමහරක් පහත ලැයිස්තුගත කර ඇත:

කාර්යයන්කටයුතු
Absලබා දී ඇති අංකයේ නිරපේක්ෂ අගය ලබා දෙයි.

උදාහරණයක්:

  • Abs(-20) අගය 20 ලබා දෙයි;
  • Abs(20) අගය 20 ලබා දෙයි.
ක්‍රිපරාමිතියෙහි සංඛ්‍යාත්මක අගයට අනුරූප වන ANSI අක්ෂරය ලබා දෙයි.

උදාහරණයක්:

  • Chr(10) රේඛා බිඳීමක් ආපසු ලබා දෙයි;
  • Chr(97) චරිතයක් නැවත ලබා දෙයි a.
දිනයවත්මන් පද්ධති දිනය ලබා දෙයි.
දිනය එකතු කරන්නදී ඇති දිනයට නිශ්චිත කාල පරතරයක් එක් කරයි. ක්‍රියාකාරී වාක්‍ය ඛණ්ඩ:

DateAdd(интервал, число, дата)

කෝ තර්කය පරතරය ලබා දී ඇති එකට එකතු කරන කාල පරතරයේ වර්ගය තීරණය කරයි දිනය තර්කයේ දක්වා ඇති ප්රමාණයෙන් අංකය.

තර්කය පරතරය පහත අගයන්ගෙන් එකක් ගත හැක:

අන්තරයවටිනාකම
yyyyවර්ෂය
qකාර්තුවේ
mමස
yවසරේ දිනය
dදවස
wසතියේ දිනය
wwසතියේ
hපැය
nවිනාඩි
sදෙවැනි

උදාහරණයක්:

  • DateAdd("d", 32, "01/01/2015") 32/01/01 දිනට දින 2015ක් එකතු කරන අතර එමඟින් 02/02/2015 දිනය ලබා දෙයි.
  • DateAdd("ww", 36, "01/01/2015") 36/01/01 දිනට සති 2015ක් එකතු කර 09/09/2015 දිනය ලබා දෙයි.
DateDiffලබා දී ඇති දින දෙකක් අතර නියමිත කාල පරතරයන් ගණන ගණනය කරයි.

උදාහරණයක්:

  • DateDiff(«d», «01/01/2015», «02/02/2015») 01/01/2015 සහ 02/02/2015 අතර දින ගණන ගණනය කරයි, 32 ලබා දෙයි.
  • DateDiff(«ww», «01/01/2015», «03/03/2016») 01/01/2015 සහ 03/03/2016 අතර සති ගණන ගණනය කරයි, 61 ලබා දෙයි.
දවසදී ඇති දිනයේ මාසයේ දිනයට අනුරූප පූර්ණ සංඛ්‍යාවක් ලබා දෙයි.

උදාහරණයක්: දිනය ("29/01/2015") අංක 29 ලබා දෙයි.

පැයදී ඇති වේලාවේ පැය ගණනට අනුරූප පූර්ණ සංඛ්‍යාවක් ලබා දෙයි.

උදාහරණයක්: පැය ("22:45:00") අංක 22 ලබා දෙයි.

InStrඑය තර්ක ලෙස පූර්ණ සංඛ්‍යාවක් සහ නූල් දෙකක් ගනී. පූර්ණ සංඛ්‍යාවකින් ලබා දී ඇති ස්ථානයෙන් සෙවීම ආරම්භ කරමින් පළමු පෙළ තුළ දෙවන තන්තුවේ සිදුවීමේ ස්ථානය ලබා දෙයි.

උදාහරණයක්:

  • InStr(1, "මෙන්න සෙවුම් වචනය", "වචනය") අංක 13 ලබා දෙයි.
  • InStr(14, "මෙන්න සෙවුම් වචනය, මෙන්න තවත් සෙවුම් වචනයක්", "වචනය") අංක 38 ලබා දෙයි.

සටහන: සංඛ්‍යා තර්කය නිශ්චිතව දක්වා නොතිබිය හැක, මෙම අවස්ථාවෙහිදී සෙවීම ආරම්භ වන්නේ ශ්‍රිතයේ දෙවන තර්කයේ දක්වා ඇති තන්තුවේ පළමු අක්ෂරයෙන්.

අන්තර්ලබා දී ඇති අංකයේ පූර්ණ සංඛ්‍යා කොටස ආපසු ලබා දෙයි.

උදාහරණයක්: Int (5.79) ප්රතිඵල 5 ලබා දෙයි.

Isdateප්රතිලාභ සැබෑදී ඇති අගය දිනයක් නම්, හෝ බොරු - දිනය නොවේ නම්.

උදාහරණයක්:

  • IsDate ("01/01/2015") ප්රතිලාභයි සැබෑ;
  • IsDate(100) ප්රතිලාභයි බොරු.
දෝෂයප්රතිලාභ සැබෑදී ඇති අගය දෝෂයක් නම්, හෝ බොරු - එය දෝෂයක් නොවේ නම්.
අතුරුදහන් වේවිකල්ප ක්‍රියා පටිපාටි තර්කයක නම ශ්‍රිතයට තර්කයක් ලෙස යවනු ලැබේ. අතුරුදහන් වේ ප්රතිලාභයි සැබෑප්‍රශ්නගත ක්‍රියා පටිපාටි තර්කය සඳහා අගයක් ලබා නොදුන්නේ නම්.
සංඛ්‍යාත්මකයිප්රතිලාභ සැබෑදී ඇති අගය අංකයක් ලෙස සැලකිය හැකි නම්, එසේ නොමැති නම් ආපසු ලබා දෙයි බොරු.
වම්ලබා දී ඇති තන්තුවේ ආරම්භයේ සිට නිශ්චිත අනුලකුණු ගණන ආපසු ලබා දෙයි. ශ්‍රිත වාක්‍ය ඛණ්ඩය මේ වගේ ය:

Left(строка, длина)

එහිදී රේඛාව මුල් තන්තුව වේ, සහ දිග තන්තුවේ ආරම්භයේ සිට ගණන් කරමින් ආපසු ලබා දිය යුතු අක්ෂර ගණන වේ.

උදාහරණයක්:

  • වම ("abvgdejziklmn", 4) "abcg" තන්තුව ආපසු ලබා දෙයි;
  • වම ("abvgdejziklmn", 1) "a" තන්තුව ආපසු ලබා දෙයි.
ලෙන්තන්තුවක අක්ෂර ගණන ආපසු ලබා දෙයි.

උදාහරණයක්: ලෙන් ("abcdej") අංක 7 ලබා දෙයි.

මාසිකදී ඇති දිනයේ මාසයට අනුරූප පූර්ණ සංඛ්‍යාවක් ලබා දෙයි.

උදාහරණයක්: මාසය ("29/01/2015") අගය 1 ලබා දෙයි.

මැදලබා දී ඇති තන්තුවේ මැද සිට නිශ්චිත අනුලකුණු ගණන ආපසු ලබා දෙයි. ක්‍රියාකාරී වාක්‍ය ඛණ්ඩ:

මැද (රේඛාව, ආරම්භයක්, දිග)

එහිදී රේඛාව මුල් තන්තුව වේ ආරම්භයක් - නිස්සාරණය කළ යුතු නූලෙහි ආරම්භයේ පිහිටීම, දිග උපුටා ගත යුතු අක්ෂර ගණන වේ.

උදාහරණයක්:

  • මැද ("abvgdejziklmn", 4, 5) "කොහේ" යන තන්තුව ආපසු ලබා දෙයි;
  • මැද ("abvgdejziklmn", 10, 2) "cl" තන්තුව ආපසු ලබා දෙයි.
විනාඩිදී ඇති වේලාවේ මිනිත්තු ගණනට අනුරූප වන පූර්ණ සංඛ්‍යාවක් ලබා දෙයි. උදාහරණයක්: මිනිත්තුව ("22:45:15") අගය 45 ලබා දෙයි.
දැන්වත්මන් පද්ධති දිනය සහ වේලාව ලබා දෙයි.
අයිතියලබා දී ඇති තන්තුවේ අවසානයේ සිට නිශ්චිත අනුලකුණු ගණන ආපසු ලබා දෙයි. ක්‍රියාකාරී වාක්‍ය ඛණ්ඩ:

දකුණ (රේඛාව, දිග)

කොහෙද රේඛාව මුල් තන්තුව වේ, සහ දිග ලබා දී ඇති තන්තුවේ අවසානයේ සිට ගණන් කරමින් උපුටා ගැනීමට අක්ෂර ගණන වේ.

උදාහරණයක්:

  • දකුණ ("abvgdezhziklmn", 4) string "clmn" ආපසු ලබා දෙයි;
  • දකුණ ("abvgdezhziklmn", 1) "n" තන්තුව ආපසු ලබා දෙයි.
දෙවැනිදී ඇති කාලයෙහි තත්පර ගණනට අනුරූප වන පූර්ණ සංඛ්‍යාවක් ලබා දෙයි.

උදාහරණයක්: දෙවන ("22:45:15") අගය 15 ලබා දෙයි.

වර්ගතර්කයේ සම්මත වූ සංඛ්‍යාත්මක අගයේ වර්ගමූලය ආපසු ලබා දෙයි.

උදාහරණයක්:

  • වර්ග (4) අගය 2 ලබා දෙයි;
  • වර්ග (16) අගය 4 ලබා දෙයි.
කාලයවත්මන් පද්ධති කාලය ලබා දෙයි.
Uboundසඳහන් කළ අරා මානයෙහි උපරි පිටපත ආපසු ලබා දෙයි.

සටහන: බහුමාන අරා සඳහා, විකල්ප තර්කයක් ආපසු ලබා දිය යුතු මානයෙහි දර්ශකය විය හැකිය. නිශ්චිතව දක්වා නොමැති නම්, පෙරනිමිය 1 වේ.

වර්ෂයදී ඇති දිනයේ වර්ෂයට අනුරූප පූර්ණ සංඛ්යාවක් ලබා දෙයි. උදාහරණයක්: වර්ෂය ("29/01/2015") අගය 2015 ලබා දෙයි.

මෙම ලැයිස්තුවට ඇතුළත් වන්නේ බහුලව භාවිතා වන එක්සෙල් විෂුවල් බේසික් ශ්‍රිතවල තේරීමක් පමණි. Excel macros හි භාවිතය සඳහා ලබා ගත හැකි VBA ශ්‍රිතවල සම්පූර්ණ ලැයිස්තුවක් දෘශ්‍ය මූලික සංවර්ධක මධ්‍යස්ථානයෙන් සොයාගත හැකිය.

ඔබමයි