Articles

Ohatra amin'ny Excel Macros nosoratana tamin'ny VBA

Ireto ohatra macro Excel tsotra ireto dia nosoratana tamin'ny VBA 

Tombanana ny fotoana famakiana: 3 minuti

Ohatra VBA mampiasa Array

Ity dingana manaraka ity dia mamaky ny soatoavina avy amin'ny sela ao amin'ny tsanganana A amin'ny takelaka miasa, mandra-pahatongany amin'ny sela banga. Ny soatoavina dia voatahiry ao anaty lasy. Ity ohatra macro Excel tsotra ity dia mampiseho ny fampiasana ny:

  • Fanambarana miovaova;
  • Dynamic arrays;
  • Tsikelikely Do Until;
  • Jereo ny sela ao amin'ny takelaka Excel amin'izao fotoana izao;
  • Vidin'ny VBA Ubound builtin (izay mamerina ny mari-pamantarana ambony indrindra amin'ny array).
' 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

Ny fomba fiasa dia mitahiry ny soatoavina ao amin'ny tsanganana A amin'ny worksheet mavitrika amin'ny array, mariho fa:

  • Ny tsingerina Do Until maka ny sandan'ny sela tsirairay ao amin'ny tsanganana A amin'ny takelaka miasa, tsy miraharaha ny sela banga
  • Ny fepetra"If UBound(dCellValues) < iRow” Manamarina fa ny dCellValues ​​​​array dia ampy hitazonana ny fampahalalana, raha tsy izany dia ampiasao ny ReDim hampitombo ny haben'ny array amin'ny 10
  • Farany, fanabeazana​​dCellValues(iRow) = Cells(iRow, 1).Value” Mitahiry ny sela ankehitriny ao amin'ny laharan'ny CellValues

Ohatra VBA miaraka amin'ny asa matematika

Ity dingana manaraka ity dia mamaky ny soatoavina avy amin'ny tsanganana A amin'ny takelaka antsoina hoe "Sheet2" ary manao asa arithmetika amin'ny soatoavina. Ny sanda vokarina dia atao pirinty ao amin'ny tsanganana A amin'ny takelaka miasa ankehitriny.

Ity macro ity dia mampiseho:

Gazety fanavaozana
Aza adino ny vaovao manan-danja indrindra momba ny fanavaozana. Misoratra anarana handray azy ireo amin'ny mailaka.
  • Fanambarana miovaova;
  • Zavatra Excel (indrindra ny fampiasana ny teny fanalahidy Set sy ny fomba hidirana amin'ny zavatra 'Columns' avy amin'ny zavatra 'Sheets');
  • Tsikelikely Do Until;
  • Midira ao amin'ny bokikely Excel amin'izao fotoana izao ny takelaka fiasana sy ny sela sela.
' 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

Ohatra VBA miaraka amin'ny firaketana daty fanovana

Andao hanoratra macro VBA tsotra izay mirehitra rehefa misy sela ao anatin'ny faritra voafaritra amin'ny takelaka misy antsika nohavaozina. Eritrereto hoe te hanara-maso ny fiovana ao amin'ny tsanganana B (B4 ka hatramin'ny B11) ianao ary raketinao ny daty sy ny fotoanan'ny fiovana ao amin'ny tsanganana A.
Andao hirosoana toy izao:

  • Ao amin'ny tab Developer tsindrio ny safidy "Visual Basic” hanokafana ny tonian-dahatsoratra VBA.
  • Ao amin'ny tonian-dahatsoratra VBA, tsindrio indroa ny tonian-dahatsoratra mifandraika amin'ny Sheet2.
  • Mifidiana Worksheet avy amin'ny tabilao havanana (na ankavia) ary safidio ny safidy Change.
  • Ampio kaody 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

Tehirizo ny bokikely miaraka amin'ny macros alefa (ohatra, ho rakitra .xlsm).


Ankehitriny, isaky ny manavao sela iray ao amin'ny tsanganana B isika (avy amin'ny laharana 1 ka hatramin'ny andalana 10), ny sela ao amin'ny tsanganana A dia hampiseho ho azy ny daty sy ora ankehitriny.

Ercole Palmeri

Gazety fanavaozana
Aza adino ny vaovao manan-danja indrindra momba ny fanavaozana. Misoratra anarana handray azy ireo amin'ny mailaka.

Lahatsoratra vao haingana

Fidirana vaovao ao amin'ny Augmented Reality, miaraka amin'ny mpijery Apple ao amin'ny Catania Polyclinic

Nisy fandidiana ophthalmoplasty tamin'ny alàlan'ny mpijery ara-barotra Apple Vision Pro natao tao amin'ny Catania Polyclinic…

3 May 2024

Ny tombony azo amin'ny fandokoana ho an'ny ankizy - tontolon'ny ody ho an'ny sokajin-taona rehetra

Ny fampivelarana ny fahaiza-manao maotera tsara amin'ny alalan'ny fandokoana dia manomana ny ankizy amin'ny fahaiza-manao sarotra kokoa toy ny fanoratana. Loko…

2 May 2024

Eto ny ho avy: ny fomba nanova ny toe-karena maneran-tany ny indostrian'ny fandefasana entana

Ny sehatry ny tafika an-dranomasina dia tena hery ara-toekarena manerantany, izay nivezivezy nankany amin'ny tsena 150 miliara...

1 May 2024

Ny Mpanonta sy ny OpenAI dia manao sonia fifanarahana mba hifehy ny fikorianan'ny vaovao karakarain'ny Artificial Intelligence

Ny alatsinainy lasa teo, nanambara fifanarahana tamin'ny OpenAI ny Financial Times. Ny FT dia manome alalana ny asa fanaovan-gazety manerantany…

30 Aprily 2024