How to Store Range Data into Array in VBA in Hindi
Makhanlal Chaturvedi University / BCA / VBA programming
Working with Range and Array in VBA in Hindi
How to Store Range Data into Array in VBA in Hindi
Introduction
VBA (Visual Basic for Applications) Excel рдореЗрдВ automation рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдЯреВрд▓ рд╣реИред рдЬрдм рднреА рд╣рдо Excel рдореЗрдВ рдХрд┐рд╕реА Range рд╕реЗ Data рдХреЛ рдЬрд▓реНрджреА рдФрд░ efficient рддрд░реАрдХреЗ рд╕реЗ Process рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддрдм рд╣рдо Arrays рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ Excel Sheet рдХреЗ рдХрд┐рд╕реА Range рдХреЛ Array рдореЗрдВ рдХреИрд╕реЗ Store рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдЙрд╕ Array рдХреЛ Modify рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЙрд╕реА Array рдХреЗ Data рдХреЛ рд╡рд╛рдкрд╕ Excel Sheet рдореЗрдВ рдХреИрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ step-by-step рд╕реАрдЦрдирд╛ рд╣рд░ Beginner рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
What is an Array in VBA?
Array рдПрдХ рдРрд╕рд╛ variable рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдПрдХ рд╣реА рдирд╛рдо рд╕реЗ multiple values рдХреЛ Store рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рдПрдХ рд╣реА Data Type рдХреА multiple values рдХреЛ рдПрдХ рд╕рд╛рде Store рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрддрд╛ рд╣реИред рдЬреИрд╕реЗ - Students рдХреЗ marks, Products рдХреА prices, рдЖрджрд┐ред
Why Use Array with Range?
- Speed: Range рдХреЗ рдореБрдХрд╛рдмрд▓реЗ Array рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛрддрд╛ рд╣реИред
- Efficiency: рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ Array рдореЗрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ Processing рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реЗ Sheet рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
- Memory Usage: рдпрд╣ system resources рдХреЛ efficiently рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
How to Store Range Data into Array in VBA
рдЬрдм рд╣рдореЗрдВ Excel рдХреЗ рдХрд┐рд╕реА Range рдХреЛ VBA рдореЗрдВ Store рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ, рддрдм рд╣рдо рдЙрд╕реЗ рд╕реАрдзреЗ рдПрдХ Variant Type рдХреЗ variable рдореЗрдВ Assign рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рд╣рдо рдХрд┐рд╕реА Range рдХреЛ Assign рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ Default рд░реВрдк рд╕реЗ 2D Array рдмрди рдЬрд╛рддрд╛ рд╣реИред
Sub StoreRangeToArray()
Dim myArray As Variant
myArray = Range("A1:C5").Value
MsgBox myArray(1, 1) 'рдпрд╣ A1 рдХреА Value рджрд┐рдЦрд╛рдПрдЧрд╛
End Sub
Key Points:
- рдпрд╣рд╛рдБ `myArray` рдПрдХ 2D Array рдмрдирддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкрд╣рд▓рд╛ Index 1 рд╣реЛрддрд╛ рд╣реИ, рдирд╛ рдХрд┐ 0ред
- `Range("A1:C5").Value` рд╕реЗ рдкреВрд░рд╛ Range рдПрдХ рд╕рд╛рде Array рдореЗрдВ рдЖ рдЬрд╛рддрд╛ рд╣реИред
- Row рдФрд░ Column рджреЛрдиреЛрдВ Index рд╕реЗ Access рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ (row, column)ред
Reading Excel Sheet Data into Array in Hindi
Step by Step Explanation
- Step 1: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ Excel Sheet рдореЗрдВ рдХреБрдЫ Sample Data рдмрдирд╛ рд▓реЗрдВред
- Step 2: VBA Editor (ALT + F11) рдЦреЛрд▓реЗрдВред
- Step 3: рдПрдХ рдирдпрд╛ Module Insert рдХрд░реЗрдВ рдФрд░ рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ Code рд▓рд┐рдЦреЗрдВред
Sub ReadDataIntoArray()
Dim dataArr As Variant
dataArr = Worksheets("Sheet1").Range("B2:D6").Value
Dim i As Long, j As Long
For i = 1 To UBound(dataArr, 1)
For j = 1 To UBound(dataArr, 2)
Debug.Print dataArr(i, j)
Next j
Next i
End Sub
рд╕рдордЭрд╛рдЗрдП:
- рдпрд╣ Code "Sheet1" рдХреЗ B2 рд╕реЗ D6 рддрдХ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ Array рдореЗрдВ Store рдХрд░рддрд╛ рд╣реИред
- рдлрд┐рд░ For Loop рдХреА рдорджрдж рд╕реЗ рд╕рднреА Values рдХреЛ Print рдХрд░рддрд╛ рд╣реИред
- `UBound` Function рд╕реЗ Array рдХреЗ Size рдХреЛ рдкрддрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Writing Array Data Back to Excel Sheet in Hindi
Step by Step Approach
- Step 1: рдПрдХ Array рдмрдирд╛рдПрдВ рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд▓рд┐рдП рд╣реБрдП Range рдХреЛ Modify рдХрд░реЗрдВред
- Step 2: рдлрд┐рд░ рдЙрд╕ Array рдХреЛ рдХрд┐рд╕реА Range рдореЗрдВ Assign рдХрд░реЗрдВред
Sub WriteArrayToSheet()
Dim myData As Variant
myData = Range("A2:C6").Value
'Modify First Value
myData(1, 1) = "Updated"
'Write back to new Range
Range("E2:G6").Value = myData
End Sub
рд╕рдордЭрд╛рдЗрдП:
- рдпрд╣ Code рдкрд╣рд▓реЗ A2:C6 рд╕реЗ Data рдХреЛ Array рдореЗрдВ рд▓реЗрддрд╛ рд╣реИред
- Array рдореЗрдВ рдкрд╣рд▓рд╛ Cell Update рдХрд░рддрд╛ рд╣реИред
- рдлрд┐рд░ рдЙрд╕реЗ рджреВрд╕рд░реА Range (E2:G6) рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд┐рдЦ рджреЗрддрд╛ рд╣реИред
Best Practices for Handling Range with Array in VBA in Hindi
1. Use Variant Type for Arrays
- рдЬрдм рднреА рдЖрдк Range рдХреЛ Array рдореЗрдВ Store рдХрд░реЗрдВ, Variant Type рдХрд╛ рд╣реА Use рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ Dynamic рд╣реЛрддрд╛ рд╣реИред
2. Always Use LBound and UBound
- Array рдХреЗ Size рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рднреА Hard-coded Values рдХрд╛ Use рди рдХрд░реЗрдВред
- рд╣рдореЗрд╢рд╛ `LBound(array, dimension)` рдФрд░ `UBound(array, dimension)` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
3. Avoid Writing to Sheet Inside Loop
- рдЕрдЧрд░ рдЖрдк Data рдХреЛ Process рдХрд░рдХреЗ Excel рдореЗрдВ Write рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ Array рдореЗрдВ рд╕рд╛рд░рд╛ Data рддреИрдпрд╛рд░ рдХрд░ рд▓реЗрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрдВ Write рдХрд░реЗрдВред
4. Use Application.ScreenUpdating = False
Sub FastProcessing()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
' рдЖрдкрдХрд╛ рдХреЛрдб рдпрд╣рд╛рдБ рд▓рд┐рдЦреЗрдВ
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
5. Use Error Handling
- рдХреЛрдИ рднреА Runtime Error рдЖрдиреЗ рдкрд░ Execution рд░реБрдХ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП `On Error Resume Next` рдпрд╛ `On Error GoTo` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
6. Use Named Ranges for Better Readability
- Sheet рдореЗрдВ Named Range рдХрд╛ Use рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ Code рдЕрдзрд┐рдХ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реЛред
7. Always Check if Range is Empty
If WorksheetFunction.CountA(Range("A1:C5")) = 0 Then
MsgBox "Range is Empty"
End If
8. Avoid Selecting Ranges
- рдЖрдкрдХрд╛ Code рдЬреНрдпрд╛рджрд╛ рддреЗрдЬ рдФрд░ Professional рддрднреА рдмрдирддрд╛ рд╣реИ рдЬрдм рдЖрдк `.Select` рдпрд╛ `.Activate` рдХрд╛ Use рди рдХрд░реЗрдВред
9. Use 2D Arrays for Range
- Excel рдХреЗ Cells рд╣рдореЗрд╢рд╛ 2D рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП 1D Array рд╕реЗ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдк 2D Array Use рдХрд░реЗрдВред
10. Array рдореЗрдВ Null рдпрд╛ Empty Values рдХреА рдкрд╣рдЪрд╛рди
If IsEmpty(myArray(i, j)) Then
MsgBox "Empty Cell Found"
End If
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА Concepts рдХреЛ рд╕рдордЭрдХрд░ рдЖрдк Excel VBA рдореЗрдВ Range рдФрд░ Array рдХреЗ рдмреАрдЪ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдЖрдкрдХрд╛ Code рддреЗрдЬ, Professional рдФрд░ Maintainable рдмрдирддрд╛ рд╣реИред рдпрд╣ рддрд░реАрдХрд╛ рд╣рд░ Excel VBA рд╕реАрдЦрдиреЗ рд╡рд╛рд▓реЗ Beginner рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ рдФрд░ рдЖрдкрдХреЛ Data рдХреЛ Excel рдореЗрдВ Auto Process рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд Help рдХрд░рддрд╛ рд╣реИред
FAQs
Dim myArray As Variant : myArray = Range("A1:C5").Value
ред рдЗрд╕рд╕реЗ рдкреВрд░реА range рдПрдХ 2D array рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕реЗ row-column index рд╕реЗ access рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
dataArr = Worksheets("Sheet1").Range("B2:D6").Value
ред рдпрд╣ рдПрдХ 2D array create рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ data store рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
Range("E2:G6").Value = myArray
ред рдпрд╣ рдкреВрд░рд╛ array рдПрдХ рдмрд╛рд░ рдореЗрдВ Excel рдореЗрдВ paste рдХрд░ рджреЗрдЧрд╛ред
IsEmpty()
function рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ cell рдЦрд╛рд▓реА рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: If IsEmpty(myArray(i, j)) Then MsgBox "Empty Cell"
ред
Application.ScreenUpdating = False
рдФрд░ Application.Calculation = xlCalculationManual
рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА performance рдХреЗ рд▓рд┐рдП рдЬрд╝рд░реВрд░реА рд╣реЛрддрд╛ рд╣реИред