எக்செல் VBA இல் VLOOKUP ஐ சரிசெய்தல்
எக்செல் VBA கற்றல் ஒரு சவாலான பணியாக இருக்கலாம், குறிப்பாக எதிர்பாராத சிக்கல்களை எதிர்கொள்ளும் போது. வெவ்வேறு தாள்களில் VLOOKUP செயல்பாட்டைப் பயன்படுத்தும் போது தோன்றும் "புதுப்பிப்பு மதிப்பு" பாப்-அப் என்பது புதிய பயனர்கள் சந்திக்கும் ஒரு பொதுவான பிரச்சனையாகும். VBA மேக்ரோவில் VLOOKUP செயல்பாடு ஒரு குறிப்பிட்ட சிக்கலைப் பற்றி விவாதிக்கிறது, இது காணாமல் போன தேடல் வரிசை தாளால் "மதிப்பு புதுப்பிப்பு" ப்ராம்ட்டை ஏற்படுத்துகிறது.
"சேகரிப்பு விவரங்கள்" மற்றும் "பிவோட்" என்று பெயரிடப்பட்ட தாள்களுக்கு இடையே மதிப்புகளை ஒப்பிட வடிவமைக்கப்பட்ட குறியீட்டின் வரியை இயக்கும் போது சிக்கல் எழுகிறது. சப்ரூட்டினைப் பிரித்தல் மற்றும் மதிப்புத் தாள்களைப் புதுப்பித்தல் உள்ளிட்ட சிக்கலைத் தீர்க்க பல்வேறு முயற்சிகள் மேற்கொள்ளப்பட்டாலும், சிக்கல் நீடிக்கிறது. இந்தக் கட்டுரையானது இந்த பொதுவான VBA சவாலுக்கு விரிவான தீர்வை வழங்குவதை நோக்கமாகக் கொண்டுள்ளது.
கட்டளை | விளக்கம் |
---|---|
Set wsCollection = ThisWorkbook.Worksheets("Collection Details") | wsCollection என்ற மாறிக்கு "சேகரிப்பு விவரங்கள்" பணித்தாளை ஒதுக்குகிறது. |
lastRow = wsCollection.Cells(wsCollection.Rows.Count, "B").End(xlUp).Row | "சேகரிப்பு விவரங்கள்" பணித்தாளின் நெடுவரிசை B இல் உள்ள தரவுகளுடன் கடைசி வரிசையைக் கண்டறியும். |
wsCollection.Range("G2:G" & lastRow).Formula | G2 வரம்பிற்கான சூத்திரத்தை "சேகரிப்பு விவரங்கள்" பணித்தாளில் கடைசி வரிசையில் அமைக்கிறது. |
wsCollection.UsedRange.EntireColumn.AutoFit | "சேகரிப்பு விவரங்கள்" பணித்தாளின் பயன்படுத்தப்பட்ட வரம்பில் உள்ள அனைத்து நெடுவரிசைகளின் அகலத்தையும் சரிசெய்கிறது. |
wsCollection.Range("I2:I" & count + 1).PasteSpecial xlPasteValues | "சேகரிப்பு விவரங்கள்" பணித்தாளில் I2 முதல் I2 + எண்ணிக்கை வரை மதிப்புகளை மட்டும் (சூத்திரங்கள் அல்ல) ஒட்டுகிறது. |
ThisWorkbook.PivotCaches.Create | PivotTable ஐ உருவாக்கப் பயன்படுத்த புதிய PivotCache ஐ உருவாக்குகிறது. |
PivotTables("PivotTable1").PivotFields("Sales Return Bill No").Orientation = xlRowField | பிவோட் டேபிளில் உள்ள "விற்பனை திரும்பப் பெறும் பில் எண்" புலத்தை ஒரு வரிசை புலமாக அமைக்கிறது. |
PivotTables("PivotTable1").PivotFields("Narration").PivotItems("From Sales Return").Visible = True | பிவோட் டேபிளின் "விற்பனை" புலத்தில் "விற்பனையிலிருந்து திரும்பும்" உருப்படியின் தெரிவுநிலையை உண்மையாக அமைக்கிறது. |
Excel VBA இல் VLOOKUP சிக்கல்களுக்கான தீர்வைப் புரிந்துகொள்வது
வழங்கப்பட்ட ஸ்கிரிப்ட்களில், எக்செல் VBA இல் VLOOKUP செயல்பாடு "புதுப்பிப்பு மதிப்பு" பாப்-அப்பைத் தூண்டும் சிக்கலைத் தீர்ப்பதே முக்கிய நோக்கமாகும். VLOOKUP சூத்திரத்தில் குறிப்பிடப்பட்டுள்ள தேடல் வரிசை தாள் காணவில்லை அல்லது கண்டுபிடிக்க முடியாத போது இந்தச் சிக்கல் பொதுவாக ஏற்படும். முதல் ஸ்கிரிப்ட் பயன்படுத்தி "சேகரிப்பு விவரங்கள்" தாளில் வரம்பிற்கான சூத்திரத்தை அமைக்கிறது Set wsCollection = ThisWorkbook.Worksheets("Collection Details") மற்றும் lastRow = wsCollection.Cells(wsCollection.Rows.Count, "B").End(xlUp).Row. நெடுவரிசை B இல் உள்ள தரவுகளுடன் கடைசி வரிசையின் அடிப்படையில் சூத்திரம் பயன்படுத்தப்படும் கலங்களின் வரம்பு துல்லியமாக தீர்மானிக்கப்படுவதை இது உறுதி செய்கிறது. கூடுதலாக, wsCollection.Range("G2:G" & lastRow).Formula ஏற்கனவே உள்ள தாளைச் சரியாகக் குறிப்பிடுவதன் மூலம் "புதுப்பிப்பு மதிப்பு" பாப்-அப்பைத் தவிர்த்து, குறிப்பிட்ட வரம்பிற்கு VLOOKUP சூத்திரத்தை அமைக்கிறது.
இரண்டாவது ஸ்கிரிப்ட் என்பது ஒரு தேர்வுமுறை ஆகும், இது நெடுவரிசை அகலங்களைப் பயன்படுத்தி செயல்முறையை மேலும் தானியங்குபடுத்துகிறது wsCollection.UsedRange.EntireColumn.AutoFit, மற்றும் "சேகரிப்பு விவரங்கள்" தாளில் தேதிகள் சரியாக புதுப்பிக்கப்படுவதை உறுதி செய்தல் wsCollection.Range("I2:I" & count + 1).PasteSpecial xlPasteValues. இந்த முறை தரவு உள்ளீட்டை தரப்படுத்தவும் பணித்தாள் முழுவதும் தரவு நிலைத்தன்மையை பராமரிக்கவும் உதவுகிறது. மேலும், ஸ்கிரிப்டில் பிவோட் டேபிளை மாறும் வகையில் உருவாக்குவதும் அடங்கும் ThisWorkbook.PivotCaches.Create மற்றும் அதன் புலங்களை சரியான முறையில் கட்டமைத்தல். எடுத்துக்காட்டாக, ஸ்கிரிப்ட் "விற்பனை ரிட்டர்ன் பில் எண்" புலத்தை ஒரு வரிசைப் புலமாக அமைக்கிறது மற்றும் துல்லியமான தரவு பகுப்பாய்வு மற்றும் அறிக்கையிடலை உறுதிசெய்யும் வகையில், "நிலுவையில் உள்ள Amt"ஐ ஒரு தரவுப் புலமாகச் சேர்க்கிறது.
எக்செல் VBA இல் VLOOKUP புதுப்பிப்பு மதிப்பு பாப்-அப்பை சரிசெய்தல்
VLOOKUP சிக்கல்களைக் கையாளவும் "புதுப்பிப்பு மதிப்பு" பாப்-அப்பைத் தவிர்க்கவும் இந்த ஸ்கிரிப்ட் Excel VBA ஐப் பயன்படுத்துகிறது.
Sub FixVLookupIssue()
Dim wsCollection As Worksheet
Dim wsPivot As Worksheet
Dim lastRow As Long
Dim count As Integer
Set wsCollection = ThisWorkbook.Worksheets("Collection Details")
Set wsPivot = ThisWorkbook.Worksheets("Pivot")
lastRow = wsCollection.Cells(wsCollection.Rows.Count, "B").End(xlUp).Row
wsCollection.Range("G2:G" & lastRow).Formula = "=IF(VLOOKUP($B2,Pivot!$A:$B,2,0)> Collection Details!$F2, Collection Details!$F2,VLOOKUP($B2,Pivot!$A:$B,2,0))"
End Sub
பிழைகளைத் தவிர்க்க VLOOKUP மேக்ரோவை மேம்படுத்துதல்
இந்த VBA ஸ்கிரிப்ட் எக்செல் VBA இல் VLOOKUP செயல்பாடுகளைக் கையாள உகந்த முறையைக் காட்டுகிறது.
Sub OptimizeVLookup()
Dim wsCollection As Worksheet
Dim wsPivot As Worksheet
Dim count As Integer
Set wsCollection = ThisWorkbook.Worksheets("Collection Details")
Set wsPivot = ThisWorkbook.Worksheets("Pivot")
wsCollection.UsedRange.EntireColumn.AutoFit
wsCollection.Range("J2").Select
count = wsCollection.Range(Selection, Selection.End(xlDown)).Count
wsCollection.Range(Selection, Selection.End(xlDown)).Value = "X00000002"
wsCollection.Range("I2:I" & count + 1).Value = "=TODAY()"
wsCollection.Range("I2:I" & count + 1).Copy
wsCollection.Range("I2:I" & count + 1).PasteSpecial xlPasteValues
wsCollection.Range("G2:G" & count + 1).Formula = "=IF(VLOOKUP($B2,Pivot!$A:$B,2,0)> Collection Details!$F2, Collection Details!$F2,VLOOKUP($B2,Pivot!$A:$B,2,0))"
End Sub
VBA இல் VLOOKUP ஐக் கையாள்வதற்கான விரிவான அணுகுமுறை
இந்த VBA ஸ்கிரிப்ட் எக்செல் VBA இல் VLOOKUP செயல்பாடுகள் மற்றும் தொடர்புடைய தரவு செயலாக்கத்தை நிர்வகிக்க விரிவான அணுகுமுறையை வழங்குகிறது.
Sub ComprehensiveVLookupHandler()
Dim wsCollection As Worksheet
Dim wsPivot As Worksheet
Dim count As Integer
Set wsCollection = ThisWorkbook.Worksheets("Collection Details")
Set wsPivot = ThisWorkbook.Worksheets("Pivot")
wsCollection.Select
wsCollection.UsedRange.EntireColumn.AutoFit
wsCollection.Range("J2").Select
count = wsCollection.Range(Selection, Selection.End(xlDown)).Count
wsCollection.Range(Selection, Selection.End(xlDown)).Value = "X00000002"
wsCollection.Range("I2:I" & count + 1).Value = "=TODAY()"
wsCollection.Range("I2:I" & count + 1).Copy
wsCollection.Range("I2:I" & count + 1).PasteSpecial xlPasteValues
wsCollection.Range("G2:G" & count + 1).Formula = "=IF(VLOOKUP($B2,Pivot!$A:$B,2,0)> Collection Details!$F2, Collection Details!$F2,VLOOKUP($B2,Pivot!$A:$B,2,0))"
wsCollection.Range("G2:G" & count + 1).Select
ThisWorkbook.Sheets("CN-DN Data").Select
ThisWorkbook.Worksheets("CN-DN Data").Range("A1:A9").EntireRow.Delete
ThisWorkbook.Worksheets("CN-DN Data").UsedRange.EntireColumn.AutoFit
ThisWorkbook.Worksheets("CN-DN Data").Cells(1, 1).Select
Sheets("Pivot").Select
ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CN-DN Data!R1C1:R1048576C15", Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:="Pivot!R3C1", TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion15
ThisWorkbook.Sheets("Pivot").PivotTables("PivotTable1").PivotFields("Sales Return Bill No").Orientation = xlRowField
ThisWorkbook.Sheets("Pivot").PivotTables("PivotTable1").PivotFields("Sales Return Bill No").Position = 1
ThisWorkbook.Sheets("Pivot").PivotTables("PivotTable1").AddDataField ThisWorkbook.Sheets("Pivot").PivotTables("PivotTable1").PivotFields("Pending Amt"), "Sum of Pending Amt", xlSum
ThisWorkbook.Sheets("Pivot").PivotTables("PivotTable1").PivotFields("Narration").Orientation = xlPageField
ThisWorkbook.Sheets("Pivot").PivotTables("PivotTable1").PivotFields("Narration").Position = 1
ThisWorkbook.Sheets("Pivot").PivotTables("PivotTable1").PivotFields("Narration").PivotItems("From Sales Return").Visible = True
ThisWorkbook.Sheets("Pivot").PivotTables("PivotTable1").PivotFields("Narration").PivotItems("From Market Return").Visible = False
ThisWorkbook.Sheets("Pivot").PivotTables("PivotTable1").PivotFields("Narration").PivotItems("(blank)").Visible = False
End Sub
Excel VBA இல் VLOOKUP ஐ நிர்வகிப்பதற்கான மேம்பட்ட நுட்பங்கள்
Excel VBA உடன் பணிபுரியும் போது, VLOOKUP போன்ற செயல்பாடுகளைப் பயன்படுத்தி பல தாள்களில் தரவை நிர்வகிப்பது சில நேரங்களில் சவால்களை அளிக்கலாம். அத்தகைய சிக்கல்களைக் கையாள்வதற்கான ஒரு மேம்பட்ட நுட்பம், தேவையான அனைத்து தாள்கள் மற்றும் தரவு வரம்புகள் சரியாகக் குறிப்பிடப்பட்டு, பணிப்புத்தகத்தில் இருப்பதை உறுதிசெய்வதாகும். இது "புதுப்பிப்பு மதிப்பு" பாப்-அப் போன்ற பொதுவான சிக்கல்களைத் தவிர்க்கிறது. VBA ஐ மேம்படுத்துவதன் மூலம், சிக்கலான சூத்திரங்களைப் பயன்படுத்துவதற்கு முன், தரவு சரிபார்ப்புச் சரிபார்ப்புகளைத் தானியங்குபடுத்தலாம். எடுத்துக்காட்டாக, "பிவோட்" தாள் இருப்பதையும் VLOOKUP இல் பயன்படுத்தப்படும் வரம்பையும் சரிபார்ப்பது, குறிப்புகள் செல்லுபடியாகும் மற்றும் தரவு அணுகக்கூடியது என்பதை உறுதி செய்கிறது. கூடுதலாக, உங்கள் VBA ஸ்கிரிப்ட்களில் பிழை கையாளுதலைப் பயன்படுத்துவது தரவு அல்லது தாள்கள் இல்லாத காட்சிகளை நிர்வகிக்க உதவும், இதனால் ஸ்கிரிப்ட் திடீரென நிறுத்தப்படுவதைத் தடுக்கிறது மற்றும் பயனருக்கு தகவல் தரும் செய்திகளை வழங்குகிறது.
மற்றொரு முக்கியமான அம்சம் உங்கள் VBA ஸ்கிரிப்ட்களின் செயல்திறனை மேம்படுத்துவதாகும். தேவையற்ற தேர்வுகள் மற்றும் ஒர்க்ஷீட்களின் செயல்பாடுகளைத் தவிர்ப்பது இதில் அடங்கும், இது உங்கள் குறியீட்டை செயல்படுத்துவதை மெதுவாக்கும். மாறாக, வரம்புகள் மற்றும் கலங்களை நேரடியாகக் குறிப்பிடவும். எடுத்துக்காட்டாக, சூத்திரத்தைப் பயன்படுத்துவதற்கு முன் வரம்பைத் தேர்ந்தெடுப்பதற்குப் பதிலாக, வரம்புப் பொருளுக்கு நேரடியாக சூத்திரத்தை அமைக்கலாம். இது மேல்நிலையைக் குறைத்து, உங்கள் ஸ்கிரிப்டை மேலும் திறமையாக்குகிறது. மேலும், டைனமிக் ரேஞ்ச் தேர்வு போன்ற அம்சங்களை இணைப்பதன் மூலம், உண்மையான தரவு நீளத்தின் அடிப்படையில் வரம்பு தீர்மானிக்கப்படுகிறது, உங்கள் ஸ்கிரிப்டுகள் வலுவானதாகவும் தரவு அளவின் மாற்றங்களுக்கு ஏற்றவாறும் இருப்பதை உறுதி செய்கிறது. இந்த நுட்பங்கள் கூட்டாக நம்பகமான மற்றும் வேகமான VBA ஸ்கிரிப்டுகளுக்கு பங்களிக்கின்றன, எக்செல் இல் உங்கள் தரவு செயலாக்க பணிகளின் ஒட்டுமொத்த செயல்திறனை மேம்படுத்துகிறது.
Excel VBA மற்றும் VLOOKUP க்கான பொதுவான கேள்விகள் மற்றும் தீர்வுகள்
- எக்செல் விபிஏவில் "புதுப்பிப்பு மதிப்பு" பாப்-அப்பை நான் எவ்வாறு தவிர்க்கலாம்?
- தாள் மற்றும் வரம்பு குறிப்பிடப்பட்டிருப்பதை உறுதிசெய்யவும் VLOOKUP உள்ளன மற்றும் உங்கள் VBA ஸ்கிரிப்ட்டில் சரியாக உச்சரிக்கப்பட்டுள்ளது.
- நோக்கம் என்ன UsedRange VBA இல்?
- தி UsedRange பணித்தாளில் உள்ள தரவுகளைக் கொண்ட கலங்களின் வரம்பை அடையாளம் காண சொத்து உதவுகிறது, இது பல்வேறு தரவு செயல்பாடுகளுக்கு பயனுள்ளதாக இருக்கும்.
- VBA ஐப் பயன்படுத்தி ஒரு நெடுவரிசையில் கடைசி வரிசையை எப்படி மாறும் வகையில் கண்டுபிடிப்பது?
- நீங்கள் பயன்படுத்தலாம் Cells(Rows.Count, "B").End(xlUp).Row நெடுவரிசை B இல் உள்ள தரவுகளுடன் கடைசி வரிசையைக் கண்டறிய.
- வரம்பைத் தேர்ந்தெடுக்காமல் சூத்திரத்தை எப்படிப் பயன்படுத்துவது?
- வரம்பு பொருளை நேரடியாகக் குறிப்பிட்டு அதை அமைக்கவும் Formula சொத்து, எ.கா. Range("G2:G" & lastRow).Formula = "your formula".
- என்ன பயன் PasteSpecial xlPasteValues VBA இல்?
- இந்த கட்டளை நகலெடுக்கப்பட்ட வரம்பிலிருந்து இலக்கு வரம்பிற்கு எந்த சூத்திரங்களையும் தவிர்த்து மதிப்புகளை மட்டுமே ஒட்டுகிறது.
- VBA இல் பிவோட் டேபிளை எவ்வாறு உருவாக்குவது?
- பயன்படுத்த PivotCaches.Create ஒரு PivotCache ஐ உருவாக்கும் முறை மற்றும் பின்னர் CreatePivotTable பிவோட் டேபிளை அமைப்பதற்கான முறை.
- ஸ்கிரிப்ட் முடிவடைவதைத் தடுக்க VBA இல் உள்ள பிழைகளை நான் எவ்வாறு கையாள்வது?
- பயன்படுத்தி பிழை கையாளுதலை செயல்படுத்தவும் On Error Resume Next அல்லது On Error GoTo இயக்க நேர பிழைகளை நேர்த்தியாக நிர்வகிக்க.
- என்ன செய்கிறது EntireColumn.AutoFit VBA இல் செய்யவா?
- தி EntireColumn.AutoFit உள்ளடக்கத்தை தானாகப் பொருத்தும் வகையில் நெடுவரிசைகளின் அகலத்தை முறை சரிசெய்கிறது.
- VBA இல் உள்ள நிபந்தனையின் அடிப்படையில் வரிசைகளை எவ்வாறு நீக்குவது?
- பயன்படுத்தவும் AutoFilter நிபந்தனையின் அடிப்படையில் வரிசைகளை வடிகட்டவும் SpecialCells(xlCellTypeVisible).EntireRow.Delete தெரியும் வரிசைகளை நீக்க.
Excel VBA இல் VLOOKUP சிக்கல்களைக் கையாள்வதற்கான இறுதி எண்ணங்கள்
Excel VBA இல் VLOOKUP செயல்பாடுகளை வெற்றிகரமாக நிர்வகிப்பதற்கு குறிப்புகள் மற்றும் பிழை மேலாண்மை ஆகியவற்றை கவனமாக கையாள வேண்டும். எல்லா தாள்களும் தரவு வரம்புகளும் சரியாகக் குறிப்பிடப்பட்டிருப்பதை உறுதிசெய்வது, "புதுப்பிப்பு மதிப்பு" பாப்-அப் போன்ற பொதுவான சிக்கல்களைத் தடுக்கிறது. உங்கள் VBA குறியீட்டை மேம்படுத்தி, டைனமிக் ரேஞ்ச் தேர்வுகளைச் செயல்படுத்துவதன் மூலம், உங்கள் ஸ்கிரிப்ட்களின் செயல்திறன் மற்றும் நம்பகத்தன்மையை மேம்படுத்தலாம். இந்த நுட்பங்கள் உடனடி சிக்கலைத் தீர்ப்பது மட்டுமல்லாமல், எக்செல் இல் மிகவும் வலுவான தரவு செயலாக்க பணிப்பாய்வுகளுக்கும் பங்களிக்கின்றன.