எக்செல் ஃபார்முலாக்களுடன் VBA கம்பைலர் பிழைகளைப் புரிந்துகொண்டு சரிசெய்தல்
எக்செல் உடன் பணிபுரியும் போது, SRIESSUM செயல்பாடு போன்ற சில சூத்திரங்கள் பணித்தாளில் சரியாக வேலை செய்வதை நீங்கள் காணலாம், ஆனால் VBA குறியீட்டில் செயல்படுத்தப்படும் போது சிக்கல்களை ஏற்படுத்தும். இந்த முரண்பாடு ஏமாற்றமளிக்கும், குறிப்பாக இரு சூழல்களிலும் நிலையான முடிவுகளை நீங்கள் எதிர்பார்க்கும் போது.
இந்த கட்டுரையில், VBA இல் SERIESSUM செயல்பாட்டைப் பயன்படுத்தும் போது ஏற்படும் பொதுவான கம்பைலர் பிழையை ஆராய்வோம். நாங்கள் குறியீட்டை பகுப்பாய்வு செய்வோம், பிழையின் மூல காரணத்தைக் கண்டறிவோம், மேலும் உங்கள் VBA குறியீடு உங்கள் Excel சூத்திரங்களைப் போன்ற முடிவுகளைத் தருகிறது என்பதை உறுதிப்படுத்த ஒரு தீர்வை வழங்குவோம்.
கட்டளை | விளக்கம் |
---|---|
Application.WorksheetFunction.SeriesSum | Excel இல் உள்ள SERIESSUM செயல்பாட்டைப் போலவே பவர் தொடரின் கூட்டுத்தொகையைக் கணக்கிடுகிறது. |
Application.WorksheetFunction.Index | வரிசை மற்றும் நெடுவரிசை எண் குறியீடுகளால் தேர்ந்தெடுக்கப்பட்ட அட்டவணை அல்லது அணிவரிசையில் உள்ள உறுப்பின் மதிப்பை வழங்கும். |
Set | ஒரு மாறி அல்லது சொத்துக்கு ஒரு பொருள் குறிப்பை ஒதுக்க பயன்படுகிறது. |
Variant | இந்த எடுத்துக்காட்டில் அணிகளுக்குப் பயன்படுத்தப்படும் எந்த வகையான தரவையும் கொண்டிருக்கக்கூடிய VBA தரவு வகை. |
ActiveWorkbook | தற்போது செயலில் உள்ள பணிப்புத்தகத்தைக் குறிக்கிறது. |
Range("range_name").Value | Excel இல் குறிப்பிடப்பட்ட பெயரிடப்பட்ட வரம்பின் மதிப்புகளைப் பெறுகிறது அல்லது அமைக்கிறது. |
எக்செல் ஃபார்முலாக்களுக்கான VBA குறியீட்டைப் புரிந்துகொள்வது
முதல் ஸ்கிரிப்ட் எடுத்துக்காட்டில், பயன்படுத்தும்போது ஏற்படும் பிழையை நாங்கள் நிவர்த்தி செய்கிறோம் SeriesSum VBA க்குள் செயல்பாடு. உள்ளிட்ட தேவையான மாறிகளை அறிவிப்பதன் மூலம் ஸ்கிரிப்ட் தொடங்குகிறது wb பணிப்புத்தகத்திற்கு, ws பணித்தாள்க்கு, output வரம்பு மற்றும் அணிவரிசைகளுக்கு volt_array மற்றும் coef_array. மாறி var இதன் முடிவைச் சேமிக்கப் பயன்படுகிறது SeriesSum செயல்பாடு. செயலில் உள்ள பணிப்புத்தகம் மற்றும் குறிப்பிட்ட பணித்தாள் அமைத்த பிறகு, ஸ்கிரிப்ட் பணித்தாளில் குறிப்பிட்ட வரம்புகளைக் குறிப்பிடுவதன் மூலம் அணிகளுக்கு மதிப்புகளை ஒதுக்குகிறது. தி SeriesSum செயல்பாடு பின்னர் அழைக்கப்படுகிறது, அளவுருக்கள் பயன்படுத்தி மீட்டெடுக்கப்படும் Index செயல்பாடு, அசல் எக்செல் சூத்திரத்தை பிரதிபலிக்கிறது.
இரண்டாவது ஸ்கிரிப்ட் இதேபோன்ற அணுகுமுறையைப் பின்பற்றுகிறது, ஆனால் பெயரிடப்பட்ட வரம்புகளை நேரடியாகக் குறிப்பிடுகிறது volt_array மற்றும் coef_array பயன்படுத்தி Range மற்றும் Value. வரிசைகளை அனுப்புவதற்கு முன், அவை சரியாக நிரப்பப்பட்டிருப்பதை இது உறுதி செய்கிறது SeriesSum செயல்பாடு. பயன்பாடு ActiveWorkbook மற்றும் Set சரியான பணிப்புத்தகம் மற்றும் பணித்தாள் பயன்படுத்தப்படுவதை உறுதி செய்கிறது. இறுதி முடிவு "நிலையான மின்னோட்டங்கள்" தாளின் செல் AB1 இல் வைக்கப்பட்டுள்ளது, Excel இல் செய்யப்படும் அதே செயல்பாடுகளை VBA இல் மீண்டும் செய்ய முடியும் என்பதை நிரூபிக்கிறது, இதன் மூலம் நிலையான முடிவுகளை உருவாக்குகிறது. இந்த ஸ்கிரிப்ட்கள் எக்செல் இன் உள்ளமைக்கப்பட்ட செயல்பாடுகள் மற்றும் VBA குறியீடு ஆகியவற்றுக்கு இடையே உள்ள இடைவெளியைக் குறைப்பது எப்படி என்பதைக் காட்டுகிறது, எல்லா அளவுருக்களும் சரியாக வரையறுக்கப்பட்டு அனுப்பப்படுவதை உறுதி செய்வதன் மூலம் 'ஆர்குமெண்ட் விருப்பமில்லை' பிழையைத் தீர்க்கிறது.
எக்செல் ஃபார்முலாவில் VBA வாதத்தை சரிசெய்வது விருப்பப் பிழை அல்ல
வாத சிக்கலை சரிசெய்ய VBA குறியீடு
Sub Corrected_Stuff()
Dim wb As Workbook
Dim ws As Worksheet
Dim output As Range
Dim volt_array As Variant
Dim coef_array As Variant
Dim var As Double
Set wb = ActiveWorkbook
Set ws = wb.Sheets("fixed currents")
volt_array = ws.Range("A1:A10").Value
coef_array = ws.Range("B1:B10").Value
var = Application.WorksheetFunction.SeriesSum(
Application.WorksheetFunction.Index(volt_array, 2),
0,
1,
Application.WorksheetFunction.Index(coef_array, 1, 1)
)
Set output = ws.Range("AB1")
output.Value = var
End Sub
எக்செல் விபிஏவில் கம்பைலர் பிழைகளைத் தீர்ப்பது
SeriesSum செயல்பாட்டிற்கான VBA ஸ்கிரிப்ட் சரிசெய்யப்பட்டது
Sub Fixed_Stuff()
Dim wb As Workbook
Dim ws As Worksheet
Dim output As Range
Dim volt_array As Variant
Dim coef_array As Variant
Dim var As Double
Set wb = ActiveWorkbook
Set ws = wb.Sheets("fixed currents")
volt_array = Range("volt_array").Value
coef_array = Range("coef_array").Value
var = Application.WorksheetFunction.SeriesSum(
Application.WorksheetFunction.Index(volt_array, 2),
0,
1,
Application.WorksheetFunction.Index(coef_array, 1, 1)
)
Set output = ws.Range("AB1")
output.Value = var
End Sub
விபிஏ மற்றும் எக்செல் செயல்பாடு ஒருங்கிணைப்பை ஆய்வு செய்தல்
எக்செல் மற்றும் விபிஏ உடன் பணிபுரியும் போது, எக்செல் இன் உள்ளமைக்கப்பட்ட செயல்பாடுகள் மற்றும் விபிஏ குறியீடு ஆகியவற்றுக்கு இடையே உள்ள இடைவெளியை எவ்வாறு இணைப்பது என்பதைப் புரிந்துகொள்வது முக்கியம். ஒரு முக்கியமான அம்சம் வரிசைகளைக் கையாள்வது மற்றும் தரவு வகைகள் சரியாக நிர்வகிக்கப்படுவதை உறுதி செய்வது. எக்செல் இல், போன்ற செயல்பாடுகள் SERIESSUM மற்றும் INDEX நேரடியானவை, ஆனால் இந்த செயல்பாடுகளை கையாள VBA க்கு வேறுபட்ட அணுகுமுறை தேவைப்படுகிறது. இது VBA இன் உள்ளமைவைப் பயன்படுத்துவதை உள்ளடக்கியது Application.WorksheetFunction உங்கள் குறியீட்டிற்குள் இந்த செயல்பாடுகளை அழைக்க சொத்து. மற்றொரு முக்கியமான அம்சம் மாறிகளின் சரியான அறிவிப்பு ஆகும். எக்செல் சூத்திரங்களைப் போலன்றி, பிழைகளைத் தவிர்க்க VBA க்கு தரவு வகைகளின் வெளிப்படையான அறிவிப்பு தேவைப்படுகிறது. எங்கள் எடுத்துக்காட்டில், பயன்படுத்தி Variant வரிசைகள் மற்றும் Double ஸ்கிரிப்ட் முழுவதும் தரவு சரியாக கையாளப்படுவதை இதன் விளைவாக உறுதி செய்கிறது.
கூடுதலாக, வரம்புகளை எவ்வாறு அமைப்பது மற்றும் குறிப்பிடுவது என்பதைப் புரிந்துகொள்வது முக்கியமானது. பயன்படுத்தி Set வரம்புகள் மற்றும் பணிப்புத்தக குறிப்புகளை ஒதுக்குவது உங்கள் பணிப்புத்தகத்தின் குறிப்பிட்ட பகுதிகளை நிரல் ரீதியாக கையாள உங்களை அனுமதிக்கிறது. Excel இல் பெயரிடப்பட்ட வரம்புகளைக் கையாளும் போது இது மிகவும் பயனுள்ளதாக இருக்கும். சரியான குறிப்பு சரியான தரவு மீட்டெடுக்கப்பட்டு செயலாக்கப்படுவதை உறுதி செய்கிறது. மேலும், VBA உடன் பணிபுரியும் போது பிழை கையாளுதல் மற்றும் பிழைத்திருத்தம் ஆகியவை முக்கியமான திறன்களாகும். பிழையைக் கையாளும் வழிமுறைகளைச் செயல்படுத்துவது, சிக்கல்களை முன்கூட்டியே கண்டறிந்து, தகவல் தரும் பிழைச் செய்திகளை வழங்குவதன் மூலம் நிறைய நேரத்தையும் ஏமாற்றத்தையும் மிச்சப்படுத்தலாம். இந்த நடைமுறைகள் உங்கள் VBA ஸ்கிரிப்ட்களின் நம்பகத்தன்மையை மேம்படுத்துவது மட்டுமல்லாமல், எதிர்கால திட்டங்களுக்கு அவற்றை மேலும் பராமரிக்கக்கூடியதாகவும் அளவிடக்கூடியதாகவும் ஆக்குகிறது.
VBA மற்றும் எக்செல் ஒருங்கிணைப்பு பற்றிய பொதுவான கேள்விகள்
- VBA இல் எக்செல் செயல்பாடுகளை எவ்வாறு பயன்படுத்துவது?
- பயன்படுத்தவும் Application.WorksheetFunction அதைத் தொடர்ந்து எக்செல் செயல்பாடு பெயர்.
- என்ன Variant VBA இல் தரவு வகை?
- வரிசைகளுக்குப் பயனுள்ள, எந்த வகையான தரவையும் வைத்திருக்கக்கூடிய தரவு வகை.
- VBA இல் பெயரிடப்பட்ட வரம்பை நான் எவ்வாறு குறிப்பிடுவது?
- பயன்படுத்தவும் Range("range_name") பெயரிடப்பட்ட வரம்புகளைக் குறிப்பிடுவதற்கு.
- என்ன செய்கிறது Set VBA இல் செய்யவா?
- இது ஒரு மாறி அல்லது சொத்துக்கு ஒரு பொருள் குறிப்பை ஒதுக்குகிறது.
- நான் ஏன் "விருப்பம் அல்ல" பிழையைப் பெறுகிறேன்?
- செயல்பாட்டு அழைப்பில் தேவையான வாதம் இல்லாதபோது இந்தப் பிழை ஏற்படுகிறது.
- VBA குறியீட்டை எவ்வாறு பிழைத்திருத்துவது?
- ப்ரேக் பாயிண்ட்ஸ், உடனடி சாளரம் மற்றும் பிழைத்திருத்தத்திற்கு குறியீடு மூலம் படி ஆகியவற்றைப் பயன்படுத்தவும்.
- என்ன Application.WorksheetFunction.SeriesSum?
- VBA இல் ஒரு சக்தித் தொடரின் கூட்டுத்தொகையைக் கணக்கிடுவதற்கான ஒரு முறை.
- VBA இல் வரிசைகளை எவ்வாறு கையாள்வது?
- வரிசைகளை இவ்வாறு அறிவிக்கவும் Variant வரம்புகளைப் பயன்படுத்தி மதிப்புகளை ஒதுக்கவும்.
- எனது VBA குறியீடு எக்செல் ஃபார்முலாக்களுடன் பொருந்துகிறது என்பதை நான் எப்படி உறுதிப்படுத்துவது?
- அளவுருக்களை சரியாகக் கடந்து தரவு வகைகளைக் கையாள்வதன் மூலம், நீங்கள் நிலையான முடிவுகளை உறுதி செய்யலாம்.
VBA கம்பைலர் பிழைகளை நிவர்த்தி செய்வதற்கான இறுதி எண்ணங்கள்
உங்கள் எக்செல் ஃபார்முலாக்கள் VBA க்குள் தடையின்றி செயல்படுவதை உறுதிசெய்ய, குறிப்பாக தரவு வகைகள் மற்றும் செயல்பாட்டு அளவுருக்களைக் கையாளும் போது, விவரங்களுக்கு கவனமாக கவனம் தேவை. Application.WorksheetFunction, குறிப்பு பெயரிடப்பட்ட வரம்புகள் மற்றும் வரிசைகளை எவ்வாறு சரியாகப் பயன்படுத்துவது என்பதைப் புரிந்துகொள்வதன் மூலம், "வாதம் விருப்பமில்லை" போன்ற பொதுவான பிழைகளைத் தவிர்க்கலாம். எக்செல் ஃபார்முலாக்களை VBA குறியீடாக எவ்வாறு திறம்பட மொழிபெயர்ப்பது, உங்கள் திட்டங்களில் நம்பகமான மற்றும் நிலையான விளைவுகளை உறுதிசெய்வது என்பதை வழங்கியுள்ள தீர்வுகள் விளக்குகின்றன.