VBA உடன் Excel இல் ஃபார்முலா நீட்டிப்பை தானியக்கமாக்குகிறது
எக்செல் ஃபார்முலாக்களுடன் பணிபுரிவது மீண்டும் மீண்டும் செய்யும் பணியாக இருக்கலாம், குறிப்பாக செல்கள் முழுவதும் அவற்றை இழுக்க வேண்டியிருக்கும் போது. தங்கள் பணிப்பாய்வுகளை நெறிப்படுத்த விரும்புவோருக்கு, செல் வரம்பை கைமுறையாகக் குறிப்பிடாமல் சூத்திரங்களை வலப்புறமாக மாறும் வகையில் இழுப்பதற்கான தீர்வை VBA வழங்குகிறது.
இந்த கட்டுரையில், ஒரு சூத்திரத்தை வலதுபுறமாக இழுக்கும் செயல்முறையை தானியக்கமாக்க VBA ஐ எவ்வாறு பயன்படுத்துவது என்பதை ஆராய்வோம். VBA இன் திறன்களைப் பயன்படுத்துவதன் மூலம், உங்கள் செயல்திறனை மேம்படுத்தலாம் மற்றும் உங்கள் எக்செல் பணிகளில் துல்லியத்தை உறுதிப்படுத்தலாம்.
கட்டளை | விளக்கம் |
---|---|
Set ws = ThisWorkbook.Sheets("Sheet1") | தற்போதைய பணிப்புத்தகத்தின் "தாள்1" பணித்தாள் மாறி wsக்கு ஒதுக்குகிறது. |
Set rng = ws.Range("A1").CurrentRegion | Rng வரம்பை செல் A1 ஐச் சுற்றியுள்ள தற்போதைய பகுதி என வரையறுக்கிறது, இதில் தரவுகளுடன் அருகிலுள்ள அனைத்து கலங்களும் அடங்கும். |
Set cell = ws.Range("A1") | பணித்தாளில் குறிப்பிட்ட செல் A1 க்கு மாறி கலத்தை அமைக்கிறது. |
lastCol = ws.Cells(cell.Row, ws.Columns.Count).End(xlToLeft).Column | பணித்தாளின் கடைசி நெடுவரிசையிலிருந்து இடதுபுறம் நகர்த்துவதன் மூலம் குறிப்பிட்ட கலத்தின் வரிசையில் உள்ள தரவுடன் கடைசி நெடுவரிசையைக் கண்டறியும். |
cell.AutoFill Destination:=ws.Range(cell, ws.Cells(cell.Row, lastCol + 1)), Type:=xlFillDefault | குறிப்பிட்ட கலத்திலிருந்து வலதுபுறம் நிர்ணயிக்கப்பட்ட வரம்பிற்கு சூத்திரத்தை தானாகவே நிரப்புகிறது. |
ws.Range(startCell, endCell).FillRight | வலதுபுறம் நிரப்புவதன் மூலம் சூத்திரத்தை தொடக்கக் கலத்திலிருந்து இறுதிக் கலத்திற்கு நீட்டிக்கும். |
எக்செல் இல் டைனமிக் ஃபார்முலா டிராக்கிங்கிற்கான VBA ஐப் புரிந்துகொள்வது
வழங்கப்பட்ட VBA ஸ்கிரிப்டுகள், ஹார்ட்கோட் செய்யப்பட்ட செல் வரம்பைக் குறிப்பிடாமல் எக்செல் இல் ஒரு சூத்திரத்தை வலதுபுறமாக இழுக்கும் செயல்முறையை தானியங்குபடுத்தும் வகையில் வடிவமைக்கப்பட்டுள்ளது. முதல் ஸ்கிரிப்ட், DragFormulaRight, பணித்தாள் வரையறுப்பதன் மூலம் தொடங்குகிறது Set ws = ThisWorkbook.Sheets("Sheet1"). இந்த கட்டளை மாறியை அமைக்கிறது ws செயலில் உள்ள பணிப்புத்தகத்தின் "தாள்1" ஐக் குறிப்பிடவும். பிறகு, Set rng = ws.Range("A1").CurrentRegion வரம்பை வரையறுக்கிறது rng செல் A1 ஐச் சுற்றியுள்ள தற்போதைய பகுதி, தரவுகளுடன் அனைத்து அருகிலுள்ள செல்கள் உட்பட. அடுத்த வரி, Set cell = ws.Range("A1"), மாறியை அமைக்கிறது cell குறிப்பிட்ட செல் A1 க்கு. வரிசையில் உள்ள தரவுகளுடன் கடைசி நெடுவரிசையைக் கண்டறிய, ஸ்கிரிப்ட் பயன்படுத்துகிறது lastCol = ws.Cells(cell.Row, ws.Columns.Count).End(xlToLeft).Column. இந்தக் கட்டளை பணித்தாளின் கடைசி நெடுவரிசையிலிருந்து தொடங்கி, அதே வரிசையில் கடைசியாக மக்கள்தொகை கொண்ட கலத்தைக் கண்டறிய இடதுபுறமாக நகர்கிறது.
இறுதியாக, ஸ்கிரிப்ட் பயன்படுத்தி சூத்திரத்தை வலது பக்கம் இழுக்கும் செயலைச் செய்கிறது cell.AutoFill Destination:=ws.Range(cell, ws.Cells(cell.Row, lastCol + 1)), Type:=xlFillDefault. இந்தக் குறியீட்டு வரியானது, குறிப்பிட்ட கலத்திலிருந்து வலதுபுறம் நிர்ணயிக்கப்பட்ட வரம்பிற்கு சூத்திரத்தை தானாகவே நிரப்புகிறது. இரண்டாவது ஸ்கிரிப்ட், ExtendFormulaRight, இதே போன்ற கட்டமைப்பைப் பின்பற்றுகிறது. இது பணித்தாள் மற்றும் தொடக்க கலத்தை வரையறுப்பதன் மூலம் தொடங்குகிறது Set ws = ThisWorkbook.Sheets("Sheet1") மற்றும் Set startCell = ws.Range("A1"). இது வரிசையின் கடைசியாக பயன்படுத்தப்பட்ட நெடுவரிசையை தீர்மானிக்கிறது lastCol = ws.Cells(startCell.Row, ws.Columns.Count).End(xlToLeft).Column. தானாக நிரப்புவதற்கான வரம்பு அமைக்கப்பட்டுள்ளது Set endCell = ws.Cells(startCell.Row, lastCol + 1), மற்றும் சூத்திரம் பயன்படுத்தி வலதுபுறமாக நீட்டிக்கப்பட்டுள்ளது ws.Range(startCell, endCell).FillRight. இந்த ஸ்கிரிப்டுகள் எக்செல் இல் மீண்டும் மீண்டும் செய்யும் பணிகளை தானியக்கமாக்குவதற்கும், நேரத்தை மிச்சப்படுத்துவதற்கும், பிழைகள் ஏற்படுவதற்கான வாய்ப்பைக் குறைப்பதற்கும் பயனுள்ளதாக இருக்கும்.
VBA ஐப் பயன்படுத்தி Excel இல் ஃபார்முலா நீட்டிப்பை தானியக்கமாக்குகிறது
எக்செல் ஆட்டோமேஷனுக்கான VBA ஸ்கிரிப்ட்
Sub DragFormulaRight()
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim lastCol As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
' Change the sheet name as needed
Set rng = ws.Range("A1").CurrentRegion
' Assuming formula is in the first cell of the range
Set cell = ws.Range("A1")
' Find the last column with data in the current row
lastCol = ws.Cells(cell.Row, ws.Columns.Count).End(xlToLeft).Column
' Drag the formula one cell to the right
cell.AutoFill Destination:=ws.Range(cell, ws.Cells(cell.Row, lastCol + 1)), Type:=xlFillDefault
End Sub
VBA உடன் நெடுவரிசைகள் முழுவதும் சூத்திரங்களை மாறும் வகையில் நீட்டிக்கவும்
டைனமிக் ஃபார்முலா இழுப்பிற்கான VBA குறியீடு
Sub ExtendFormulaRight()
Dim ws As Worksheet
Dim startCell As Range
Dim endCell As Range
Dim lastCol As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
' Adjust the worksheet name as necessary
Set startCell = ws.Range("A1") ' Cell with the formula
' Determine the last used column in the row
lastCol = ws.Cells(startCell.Row, ws.Columns.Count).End(xlToLeft).Column
' Set the range to autofill
Set endCell = ws.Cells(startCell.Row, lastCol + 1)
' Autofill the formula to the right
ws.Range(startCell, endCell).FillRight
End Sub
VBA ஐப் பயன்படுத்தி Excel இல் டைனமிக் ஃபார்முலா நீட்டிப்புக்கான மேம்பட்ட நுட்பங்கள்
எக்செல் இல் டைனமிக் ஃபார்முலா இழுவையின் மற்றொரு முக்கியமான அம்சம், சூத்திரத்தை பல வரிசைகள் மற்றும் நெடுவரிசைகளில் மாறும் வகையில் நகலெடுக்க வேண்டிய சூழ்நிலைகளைக் கையாள்வது. சூத்திரத்தின் தொடக்கப் புள்ளி நிலையானதாக இல்லாத பெரிய தரவுத்தொகுப்புகளில் இது மிகவும் பயனுள்ளதாக இருக்கும். மிகவும் மேம்பட்ட அணுகுமுறையானது, வரிசைகள் மற்றும் நெடுவரிசைகள் மூலம் மீண்டும் மீண்டும் செய்ய VBA சுழல்களைப் பயன்படுத்துவதை உள்ளடக்கியது, தேவையான வரம்பில் சூத்திரங்கள் தொடர்ந்து பயன்படுத்தப்படுவதை உறுதிசெய்கிறது. உதாரணமாக, ஒரு பயன்படுத்தி For Each இணைந்து வளைய Range பொருள்கள் மாற்றியமைக்கப்படும் செல்கள் மீது அதிக சிறுமணி கட்டுப்பாட்டை அனுமதிக்கிறது.
லூப்பிங்குடன் கூடுதலாக, சில செல்கள் காலியாக இருக்கும் அல்லது வெவ்வேறு தரவு வகைகளைக் கொண்டிருக்கும் நிகழ்வுகளைக் கையாள நிபந்தனை தர்க்கம் இணைக்கப்படலாம். ஃபார்முலா அப்ளிகேஷன் செயல்முறை வலுவானது மற்றும் பல்வேறு தரவு கட்டமைப்புகளுக்கு ஏற்றதாக இருப்பதை இது உறுதி செய்கிறது. போன்ற கட்டளைகள் If...Then சூத்திரத்தைப் பயன்படுத்துவதற்கு முன் நிபந்தனைகளைச் சரிபார்க்க அறிக்கைகள் பயன்படுத்தப்படலாம், இதன் மூலம் பிழைகளைத் தடுக்கலாம் மற்றும் ஸ்கிரிப்ட்டின் நம்பகத்தன்மையை மேம்படுத்தலாம். மேலும், அந்நியப்படுத்துதல் Intersect சூத்திரத்திற்கான இலக்கு வரம்பை மாறும் வகையில் தீர்மானிக்க இந்த முறை உதவும், மேலும் ஸ்கிரிப்டை மேலும் பல்துறை ஆக்குகிறது.
எக்செல் இல் டைனமிக் ஃபார்முலா இழுத்தல் பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்
- பல நெடுவரிசைகளில் சூத்திரத்தை இழுக்க VBA ஐ எவ்வாறு பயன்படுத்துவது?
- நீங்கள் விரும்பிய நெடுவரிசைகளை மீண்டும் செய்ய ஒரு சுழற்சியைப் பயன்படுத்தலாம் மற்றும் சூத்திரத்தைப் பயன்படுத்தலாம் Range.FillRight அல்லது Range.AutoFill.
- நான் சூத்திரங்களை இரு திசைகளிலும் (வலது மற்றும் கீழ்) மாறும் வகையில் இழுக்க முடியுமா?
- ஆம், நீங்கள் பயன்படுத்தலாம் Range.AutoFill உடன் xlFillDefault சூத்திரங்களை எந்த திசையிலும் மாறும் வகையில் இழுப்பதற்கான விருப்பம்.
- எனது தரவு வரம்பு அடிக்கடி மாறினால் என்ன செய்வது? VBA இதை எவ்வாறு கையாள முடியும்?
- பயன்படுத்த CurrentRegion மாறும் தரவு வரம்பிற்கு மாறும் வகையில் மாற்றியமைக்க மற்றும் அதற்கேற்ப சூத்திரத்தைப் பயன்படுத்துவதற்கான பண்பு.
- சூத்திரங்கள் காலியாக இல்லாத கலங்களுக்கு மட்டுமே பயன்படுத்தப்படுவதை நான் எப்படி உறுதி செய்வது?
- ஒரு இணைக்கவும் If...Then சூத்திரத்தைப் பயன்படுத்துவதற்கு முன் செல் காலியாக இல்லை என்பதைச் சரிபார்க்க அறிக்கை.
- VBA ஐப் பயன்படுத்தி முழுமையான மற்றும் தொடர்புடைய குறிப்புகளுடன் சூத்திரங்களை நகலெடுக்க முடியுமா?
- ஆம், உங்கள் சூத்திரத்தில் உள்ள செல் குறிப்புகளை நகலெடுப்பதற்கு முன், தேவையான முழுமையான மற்றும் தொடர்புடைய குறிப்புகளை பராமரிக்க நீங்கள் கையாளலாம்.
- கடைசியாகப் பயன்படுத்திய வரிசை அல்லது நெடுவரிசையைக் கண்டறிய என்ன VBA முறைகளைப் பயன்படுத்தலாம்?
- பயன்படுத்தவும் End(xlUp) அல்லது End(xlToLeft) ஒரு வரம்பில் கடைசியாகப் பயன்படுத்தப்பட்ட வரிசை அல்லது நெடுவரிசையைக் கண்டறியும் முறைகள்.
- VBA உடன் சூத்திரங்களை இழுக்கும்போது பிழைகளை எவ்வாறு கையாள்வது?
- பயன்படுத்தி பிழை கையாளுதல் இணைக்கவும் On Error Resume Next செயல்பாட்டின் போது சாத்தியமான பிழைகளை நிர்வகிக்க.
- பாதுகாக்கப்பட்ட தாள்களில் சூத்திரங்களை இழுக்க VBA ஐப் பயன்படுத்தலாமா?
- ஆம், ஆனால் தாளைப் பாதுகாப்பதை நீக்கி, சூத்திரத்தைப் பயன்படுத்தவும், பின்னர் அதைப் பயன்படுத்தி மீண்டும் பாதுகாக்கவும் Sheet.Unprotect மற்றும் Sheet.Protect முறைகள்.
- VBA இல் குறிப்பிட்ட அளவுகோல்களின் அடிப்படையில் சூத்திரங்களை எப்படி இழுப்பது?
- பயன்படுத்தவும் If...Then அல்லது Select Case குறிப்பிட்ட அளவுகோல்கள் அல்லது நிபந்தனைகளின் அடிப்படையில் சூத்திரங்களைப் பயன்படுத்துவதற்கான அறிக்கைகள்.
- என்ன வித்தியாசம் AutoFill மற்றும் FillRight VBA இல்?
- AutoFill தொடரை நிரப்புதல், வடிவமைத்தல் போன்ற கூடுதல் விருப்பங்களை அனுமதிக்கிறது FillRight குறிப்பாக சூத்திரங்கள் அல்லது மதிப்புகளை வலதுபுறமாக நகலெடுப்பதற்காக.
ரேப்பிங் அப்: VBA உடன் திறமையான ஃபார்முலா இழுத்தல்
எக்செல் இல் ஃபார்முலாக்களை டைனமிக் முறையில் வலப்புறமாக இழுக்க VBA ஐப் பயன்படுத்துவது, திரும்பத் திரும்பச் செய்யும் பணிகளை நெறிப்படுத்துவதற்கும் தரவுத் துல்லியத்தை உறுதி செய்வதற்கும் ஒரு சக்திவாய்ந்த நுட்பமாகும். போன்ற VBA முறைகளை இணைப்பதன் மூலம் AutoFill மற்றும் FillRight, செல் வரம்புகளை கைமுறையாகக் குறிப்பிடாமல் பயனர்கள் தங்கள் தரவை திறமையாக நிர்வகிக்க முடியும். இந்த ஆட்டோமேஷன் உற்பத்தித்திறன் மற்றும் நம்பகத்தன்மையை அதிகரிக்கிறது, எக்செல் தரவு பகுப்பாய்விற்கான மிகவும் வலுவான கருவியாக அமைகிறது.