Eisimpleirean de Excel Macros sgrìobhte le VBA
Chaidh na h-eisimpleirean macro Excel sìmplidh a leanas a sgrìobhadh a’ cleachdadh VBA
Ùine leughaidh tuairmseach: 3 minuti
Eisimpleir VBA a 'cleachdadh Array
Bidh an Fo-mhodh a leanas a 'leughadh luachan bho cheallan ann an colbh A den duilleag-obrach gnìomhach, gus an coinnich e ri ceal bàn. Tha na luachan air an stòradh ann an sreath. Tha an eisimpleir macro Excel sìmplidh seo a’ sealltainn cleachdadh:
- Dearbhaidhean caochlaideach;
- Arrays fiùghantach;
- Cearcall
Do Until
; - Thoir sùil air ceallan anns an duilleag-obrach Excel làithreach;
- An gnìomh VBA
Ubound
builtin (a thilleas an clàr-amais as àirde de raon).
' 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
Bidh am modh-obrach a’ stòradh nan luachan ann an colbh A den duilleag-obrach gnìomhach ann an sreath, thoir an aire:
- An cearcall
Do Until
a’ toirt a-mach luachan gach cealla ann an colbh A den duilleag-obrach gnìomhach, a’ seachnadh cheallan bàn - Tha an suidheachadh "
If UBound(dCellValues) < iRow
” dèan cinnteach gu bheil an sreath dCellValues mòr gu leòr airson am fiosrachadh a chumail, mura h-eil, cleachd ReDim gus meud an t-sreath àrdachadh le 10 - Mu dheireadh, foghlam
dCellValues(iRow) = Cells(iRow, 1).Value
” A ’stòradh a’ chill gnàthach anns an raon CellValues
Eisimpleir VBA le obrachaidhean matamataigeach
Bidh an dòigh-obrach a leanas a’ leughadh na luachan bho cholbh A den duilleag-obrach leis an ainm “Sheet2” agus a’ coileanadh obrachaidhean àireamhachd air na luachan. Tha na luachan a thig às air an clò-bhualadh ann an colbh A den duilleag-obrach gnìomhach gnàthach.
Tha am macro seo a’ nochdadh:
- Dearbhaidhean caochlaideach;
- Rudan Excel (gu sònraichte, cleachdadh am prìomh fhacal Set agus mar a gheibh thu cothrom air an nì ‘Columns’ bhon nì ‘Sheets’);
- Cearcall
Do Until
; - Cothrom air duilleagan-obrach agus raointean cealla anns an leabhar-obrach Excel gnàthach.
' 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
Eisimpleir VBA le clàradh ceann-latha atharrachaidh
Sgrìobhamaid macro VBA sìmplidh a bhios a 'losgadh nuair a thèid cealla ann an raon sònraichte den duilleag againn ùrachadh. Can gu bheil thu airson sùil a chumail air atharrachaidhean ann an colbh B (B4 gu B11) agus ceann-latha agus uair an atharrachaidh ann an colbh A a chlàradh.
Rachamaid air adhart mar seo:
- Anns an taba
Developer
cliog air an roghainn"Visual Basic
” gus deasaiche VBA fhosgladh. - Anns an deasaiche VBA, cliog dùbailte air an deasaiche còd co-cheangailte ri Duilleag2.
- Tagh Duilleag-obrach bhon taba deas (no clì) agus tagh an roghainn Atharraich.
- Cuir còd VBA ris:
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
Sàbhail an leabhar-obrach le macros air a chomasachadh (mar eisimpleir, mar fhaidhle .xlsm).
A-nis, a h-uile uair a bhios sinn ag ùrachadh cealla ann an colbh B (bho shreath 1 gu sreath 10), seallaidh an cealla ann an colbh A gu fèin-ghluasadach an ceann-latha agus an àm làithreach.
Ercole Palmeri