ਲੇਖ

VBA ਨਾਲ ਲਿਖੇ ਐਕਸਲ ਮੈਕਰੋਜ਼ ਦੀਆਂ ਉਦਾਹਰਨਾਂ

ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਸਧਾਰਨ ਐਕਸਲ ਮੈਕਰੋ ਉਦਾਹਰਣਾਂ ਨੂੰ VBA ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਲਿਖਿਆ ਗਿਆ ਸੀ 

ਅਨੁਮਾਨਿਤ ਪੜ੍ਹਨ ਦਾ ਸਮਾਂ: 3 ਮਿੰਟ

ਐਰੇ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ VBA ਉਦਾਹਰਨ

ਹੇਠ ਦਿੱਤੀ ਉਪ ਪ੍ਰਕਿਰਿਆ ਕਿਰਿਆਸ਼ੀਲ ਵਰਕਸ਼ੀਟ ਦੇ ਕਾਲਮ A ਵਿੱਚ ਸੈੱਲਾਂ ਤੋਂ ਮੁੱਲ ਪੜ੍ਹਦੀ ਹੈ, ਜਦੋਂ ਤੱਕ ਇਹ ਇੱਕ ਖਾਲੀ ਸੈੱਲ ਦਾ ਸਾਹਮਣਾ ਨਹੀਂ ਕਰਦਾ। ਮੁੱਲ ਇੱਕ ਐਰੇ ਵਿੱਚ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਇਹ ਸਧਾਰਨ ਐਕਸਲ ਮੈਕਰੋ ਉਦਾਹਰਨ ਦੀ ਵਰਤੋਂ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ:

  • ਪਰਿਵਰਤਨਸ਼ੀਲ ਘੋਸ਼ਣਾਵਾਂ;
  • ਗਤੀਸ਼ੀਲ ਐਰੇ;
  • ਇੱਕ ਚੱਕਰ Do Until;
  • ਮੌਜੂਦਾ ਐਕਸਲ ਵਰਕਸ਼ੀਟ ਵਿੱਚ ਸੈੱਲਾਂ ਦਾ ਹਵਾਲਾ ਦਿਓ;
  • VBA ਫੰਕਸ਼ਨ Ubound ਬਿਲਟਇਨ (ਜੋ ਇੱਕ ਐਰੇ ਦਾ ਸਭ ਤੋਂ ਉੱਚਾ ਸੂਚਕਾਂਕ ਵਾਪਸ ਕਰਦਾ ਹੈ)।
' Sub procedure store values in Column A of the active Worksheet
' into an array
Sub GetCellValues()
Dim iRow As Integer            ' stores the current row number
Dim dCellValues() As Double  ' array to store the cell values
iRow = 1
ReDim dCellValues(1 To 10)
' Do Until loop to extract the value of each cell in column A
' of the active Worksheet, as long as the cell is not blank
Do Until IsEmpty(Cells(iRow, 1))
   ' Check that the dCellValues array is big enough
   ' If not, use ReDim to increase the size of the array by 10
   If UBound(dCellValues) < iRow Then
      ReDim Preserve dCellValues(1 To iRow + 9)
   End If
   ' Store the current cell in the CellValues array
   dCellValues(iRow) = Cells(iRow, 1).Value
   iRow = iRow + 1
Loop
End Sub

ਵਿਧੀ ਇੱਕ ਐਰੇ ਵਿੱਚ ਕਿਰਿਆਸ਼ੀਲ ਵਰਕਸ਼ੀਟ ਦੇ ਕਾਲਮ A ਵਿੱਚ ਮੁੱਲਾਂ ਨੂੰ ਸਟੋਰ ਕਰਦੀ ਹੈ, ਨੋਟ ਕਰੋ ਕਿ:

  • ਚੱਕਰ Do Until ਖਾਲੀ ਸੈੱਲਾਂ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਦੇ ਹੋਏ, ਕਿਰਿਆਸ਼ੀਲ ਵਰਕਸ਼ੀਟ ਦੇ ਕਾਲਮ A ਵਿੱਚ ਹਰੇਕ ਸੈੱਲ ਦੇ ਮੁੱਲਾਂ ਨੂੰ ਕੱਢਦਾ ਹੈ
  • ਸ਼ਰਤ "If UBound(dCellValues) < iRow” ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ dCellValues ​​ਐਰੇ ਜਾਣਕਾਰੀ ਰੱਖਣ ਲਈ ਕਾਫੀ ਵੱਡਾ ਹੈ, ਜੇਕਰ ਨਹੀਂ, ਤਾਂ ਐਰੇ ਦੇ ਆਕਾਰ ਨੂੰ 10 ਤੱਕ ਵਧਾਉਣ ਲਈ ReDim ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • ਅੰਤ ਵਿੱਚ, ਸਿੱਖਿਆ​​dCellValues(iRow) = Cells(iRow, 1).Value" ਮੌਜੂਦਾ ਸੈੱਲ ਨੂੰ CellValues ​​ਐਰੇ ਵਿੱਚ ਸਟੋਰ ਕਰਦਾ ਹੈ

ਗਣਿਤਿਕ ਕਾਰਵਾਈਆਂ ਦੇ ਨਾਲ VBA ਉਦਾਹਰਨ

ਹੇਠ ਦਿੱਤੀ ਉਪ ਵਿਧੀ “ਸ਼ੀਟ2” ਨਾਮਕ ਵਰਕਸ਼ੀਟ ਦੇ ਕਾਲਮ A ਤੋਂ ਮੁੱਲਾਂ ਨੂੰ ਪੜ੍ਹਦੀ ਹੈ ਅਤੇ ਮੁੱਲਾਂ 'ਤੇ ਅੰਕਗਣਿਤ ਦੀਆਂ ਕਾਰਵਾਈਆਂ ਕਰਦੀ ਹੈ। ਨਤੀਜੇ ਵਜੋਂ ਮੁੱਲ ਮੌਜੂਦਾ ਕਿਰਿਆਸ਼ੀਲ ਵਰਕਸ਼ੀਟ ਦੇ ਕਾਲਮ A ਵਿੱਚ ਛਾਪੇ ਜਾਂਦੇ ਹਨ।

ਇਹ ਮੈਕਰੋ ਦਰਸਾਉਂਦਾ ਹੈ:

ਇਨੋਵੇਸ਼ਨ ਨਿਊਜ਼ਲੈਟਰ
ਨਵੀਨਤਾ ਬਾਰੇ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਖ਼ਬਰਾਂ ਨੂੰ ਨਾ ਭੁੱਲੋ। ਉਹਨਾਂ ਨੂੰ ਈਮੇਲ ਦੁਆਰਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਾਈਨ ਅੱਪ ਕਰੋ।
  • ਪਰਿਵਰਤਨਸ਼ੀਲ ਘੋਸ਼ਣਾਵਾਂ;
  • ਐਕਸਲ ਆਬਜੈਕਟ (ਖਾਸ ਤੌਰ 'ਤੇ, ਸੈੱਟ ਕੀਵਰਡ ਦੀ ਵਰਤੋਂ ਅਤੇ 'ਸ਼ੀਟਸ' ਆਬਜੈਕਟ ਤੋਂ 'ਕਾਲਮ' ਆਬਜੈਕਟ ਨੂੰ ਕਿਵੇਂ ਐਕਸੈਸ ਕਰਨਾ ਹੈ);
  • ਇੱਕ ਚੱਕਰ Do Until;
  • ਮੌਜੂਦਾ ਐਕਸਲ ਵਰਕਬੁੱਕ ਵਿੱਚ ਵਰਕਸ਼ੀਟਾਂ ਅਤੇ ਸੈੱਲ ਰੇਂਜਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰੋ।
' Sub procedure to loop through the values in Column A of the Worksheet
' "Sheet2", perform arithmetic operations on each value, and write the
' result into Column A of the current Active Worksheet ("Sheet1")
Sub Transfer_ColA()
Dim i As Integer
Dim Col As Range
Dim dVal As Double
' Set the variable 'Col' to be Column A of Sheet 2
Set Col = Sheets("Sheet2").Columns("A")
i = 1
' Loop through each cell of the column 'Col' until
' a blank cell is encountered
Do Until IsEmpty(Col.Cells(i))
   ' Apply arithmetic operations to the value of the current cell
   dVal = Col.Cells(i).Value * 2 + 1
   ' The command below copies the result into Column A
   ' of the current Active Worksheet - no need to specify
   ' the Worksheet name as it is the active Worksheet.
   Cells(i, 1) = dVal
   i = i + 1
Loop
End Sub

ਸੋਧ ਮਿਤੀ ਰਿਕਾਰਡਿੰਗ ਦੇ ਨਾਲ VBA ਉਦਾਹਰਨ

ਆਉ ਇੱਕ ਸਧਾਰਨ VBA ਮੈਕਰੋ ਲਿਖੀਏ ਜੋ ਸਾਡੀ ਸ਼ੀਟ ਦੀ ਇੱਕ ਖਾਸ ਰੇਂਜ ਵਿੱਚ ਇੱਕ ਸੈੱਲ ਨੂੰ ਅੱਪਡੇਟ ਕੀਤੇ ਜਾਣ 'ਤੇ ਫਾਇਰ ਕਰਦਾ ਹੈ। ਮੰਨ ਲਓ ਕਿ ਤੁਸੀਂ ਕਾਲਮ B (B4 ਤੋਂ B11) ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਨੂੰ ਟਰੈਕ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਅਤੇ ਕਾਲਮ A ਵਿੱਚ ਤਬਦੀਲੀ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ ਰਿਕਾਰਡ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ।
ਆਓ ਇਸ ਤਰ੍ਹਾਂ ਅੱਗੇ ਵਧੀਏ:

  • ਟੈਬ ਵਿੱਚ Developer ਵਿਕਲਪ 'ਤੇ ਕਲਿੱਕ ਕਰੋ"Visual BasicVBA ਸੰਪਾਦਕ ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ.
  • VBA ਸੰਪਾਦਕ ਵਿੱਚ, ਸ਼ੀਟ2 ਨਾਲ ਸਬੰਧਤ ਕੋਡ ਸੰਪਾਦਕ 'ਤੇ ਡਬਲ-ਕਲਿੱਕ ਕਰੋ।
  • ਸੱਜੇ (ਜਾਂ ਖੱਬੇ) ਟੈਬ ਤੋਂ ਵਰਕਸ਼ੀਟ ਚੁਣੋ ਅਤੇ ਬਦਲੋ ਵਿਕਲਪ ਚੁਣੋ।
  • VBA ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B1:B10")) Is Nothing Then
        Target.Range("A1:A1").Value = Now
    End If
End Sub

ਵਰਕਬੁੱਕ ਨੂੰ ਮੈਕਰੋ ਸਮਰਥਿਤ (ਉਦਾਹਰਨ ਲਈ, ਇੱਕ .xlsm ਫਾਈਲ ਵਜੋਂ) ਨਾਲ ਸੁਰੱਖਿਅਤ ਕਰੋ।


ਹੁਣ, ਹਰ ਵਾਰ ਜਦੋਂ ਅਸੀਂ ਕਾਲਮ B (ਕਤਾਰ 1 ਤੋਂ ਕਤਾਰ 10 ਤੱਕ) ਵਿੱਚ ਇੱਕ ਸੈੱਲ ਨੂੰ ਅਪਡੇਟ ਕਰਦੇ ਹਾਂ, ਤਾਂ ਕਾਲਮ A ਵਿੱਚ ਸੈੱਲ ਆਪਣੇ ਆਪ ਮੌਜੂਦਾ ਮਿਤੀ ਅਤੇ ਸਮਾਂ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੇਗਾ।

Ercole Palmeri

ਇਨੋਵੇਸ਼ਨ ਨਿਊਜ਼ਲੈਟਰ
ਨਵੀਨਤਾ ਬਾਰੇ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਖ਼ਬਰਾਂ ਨੂੰ ਨਾ ਭੁੱਲੋ। ਉਹਨਾਂ ਨੂੰ ਈਮੇਲ ਦੁਆਰਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਾਈਨ ਅੱਪ ਕਰੋ।

ਤਾਜ਼ਾ ਲੇਖ

Veeam ਵਿੱਚ ਸੁਰੱਖਿਆ ਤੋਂ ਲੈ ਕੇ ਜਵਾਬ ਅਤੇ ਰਿਕਵਰੀ ਤੱਕ, ਰੈਨਸਮਵੇਅਰ ਲਈ ਸਭ ਤੋਂ ਵੱਧ ਵਿਆਪਕ ਸਮਰਥਨ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ

Veeam ਦੁਆਰਾ Coveware ਸਾਈਬਰ ਜ਼ਬਰਦਸਤੀ ਘਟਨਾ ਪ੍ਰਤੀਕਿਰਿਆ ਸੇਵਾਵਾਂ ਪ੍ਰਦਾਨ ਕਰਨਾ ਜਾਰੀ ਰੱਖੇਗਾ। ਕੋਵਵੇਅਰ ਫੋਰੈਂਸਿਕ ਅਤੇ ਉਪਚਾਰ ਸਮਰੱਥਾਵਾਂ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰੇਗਾ...

23 ਅਪ੍ਰੈਲ 2024

ਹਰੀ ਅਤੇ ਡਿਜੀਟਲ ਕ੍ਰਾਂਤੀ: ਕਿਵੇਂ ਭਵਿੱਖਬਾਣੀ ਰੱਖ-ਰਖਾਅ ਤੇਲ ਅਤੇ ਗੈਸ ਉਦਯੋਗ ਨੂੰ ਬਦਲ ਰਿਹਾ ਹੈ

ਪੂਰਵ-ਅਨੁਮਾਨਤ ਰੱਖ-ਰਖਾਅ ਪਲਾਂਟ ਪ੍ਰਬੰਧਨ ਲਈ ਇੱਕ ਨਵੀਨਤਾਕਾਰੀ ਅਤੇ ਕਿਰਿਆਸ਼ੀਲ ਪਹੁੰਚ ਦੇ ਨਾਲ, ਤੇਲ ਅਤੇ ਗੈਸ ਸੈਕਟਰ ਵਿੱਚ ਕ੍ਰਾਂਤੀ ਲਿਆ ਰਹੀ ਹੈ।…

22 ਅਪ੍ਰੈਲ 2024

ਯੂਕੇ ਐਂਟੀਟਰਸਟ ਰੈਗੂਲੇਟਰ ਨੇ GenAI ਉੱਤੇ ਬਿਗਟੈਕ ਅਲਾਰਮ ਵਧਾਇਆ ਹੈ

UK CMA ਨੇ ਨਕਲੀ ਖੁਫੀਆ ਮਾਰਕੀਟ ਵਿੱਚ ਬਿਗ ਟੈਕ ਦੇ ਵਿਵਹਾਰ ਬਾਰੇ ਇੱਕ ਚੇਤਾਵਨੀ ਜਾਰੀ ਕੀਤੀ ਹੈ. ਉੱਥੇ…

18 ਅਪ੍ਰੈਲ 2024

ਕਾਸਾ ਗ੍ਰੀਨ: ਇਟਲੀ ਵਿੱਚ ਇੱਕ ਟਿਕਾਊ ਭਵਿੱਖ ਲਈ ਊਰਜਾ ਕ੍ਰਾਂਤੀ

"ਕੇਸ ਗ੍ਰੀਨ" ਫਰਮਾਨ, ਯੂਰਪੀਅਨ ਯੂਨੀਅਨ ਦੁਆਰਾ ਇਮਾਰਤਾਂ ਦੀ ਊਰਜਾ ਕੁਸ਼ਲਤਾ ਨੂੰ ਵਧਾਉਣ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ, ਨੇ ਆਪਣੀ ਵਿਧਾਨਕ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਇਸ ਦੇ ਨਾਲ ਸਮਾਪਤ ਕੀਤਾ ਹੈ ...

18 ਅਪ੍ਰੈਲ 2024

ਆਪਣੀ ਭਾਸ਼ਾ ਵਿੱਚ ਇਨੋਵੇਸ਼ਨ ਪੜ੍ਹੋ

ਇਨੋਵੇਸ਼ਨ ਨਿਊਜ਼ਲੈਟਰ
ਨਵੀਨਤਾ ਬਾਰੇ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਖ਼ਬਰਾਂ ਨੂੰ ਨਾ ਭੁੱਲੋ। ਉਹਨਾਂ ਨੂੰ ਈਮੇਲ ਦੁਆਰਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਾਈਨ ਅੱਪ ਕਰੋ।

ਸਾਡੇ ਨਾਲ ਪਾਲਣਾ