Sela mitambatra (cumulative)

Hevitra ato Anatiny

Matetika, misy toe-javatra mitranga rehefa mila mamintina (manangona) soatoavina maromaro tafiditra ao anaty sela iray isika:

Ireo. raha ohatra ka mampiditra ny isa 1 ao amin'ny sela A5 ianao dia tokony hiseho ao amin'ny B1 ny isa 15. Raha ampidirinao ao amin'ny A1 ny isa 7, dia tokony hiseho ao amin'ny sela B1 ny 22, sy ny sisa. Amin'ny ankapobeny, inona no antsoin'ny kaonty (fa tsy izy ireo ihany) ho fitambarana mitambatra.

Azonao atao ny mametraka cellule-accumulator toy izany amin'ny fampiasana macro tsotra. Tsindrio havanana amin'ny tabilao takelaka misy ny cellules A1 sy B1 ary mifidiana avy amin'ny menu context Loharano lahatsoratra (Kaody loharano). Ao amin'ny varavarankelin'ny tonian-dahatsoratra Visual Basic izay misokatra, mandika sy mametaka ny kaody macro tsotra:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) Miaraka amin'ny Target Raha .Address(Diso, Diso) = "A1" Dia Raha IsNumeric(.Value) Dia Application.EnableEvents = False Range("A2").Value = Range(" A2")  

Ny adiresin'ny sela A1 sy A2, mazava ho azy, dia azo soloina amin'ny anao manokana.

Raha mila manara-maso ny fidirana angon-drakitra ianao ary mamintina fa tsy ny sela tsirairay, fa ny faritra manontolo, dia tsy maintsy ovaina kely ny macro:

Private Sub Worksheet_Change(ByVal Target as Excel.Range) Raha tsy mifanelanelana(Target, Range("A1:A10")) dia tsy misy na inona na inona raha IsNumeric(Target.Value) dia Application.EnableEvents = False Target.Offset(0, 1) .Value = Target.Offset(0, 1)  

Heverina fa ny angon-drakitra dia tafiditra ao amin'ny sela A1: A10, ary ny isa nampidirina dia fintinina ao amin'ny tsanganana mifanila eo ankavanana. Raha toa ka tsy mifanakaiky izany, dia ampitomboy ny fihodinana miankavanana amin'ny operator Offset - soloy isa lehibe kokoa ny 1.

  • Inona ny macros, aiza no hampidirana kaody macro ao amin'ny VBA, ahoana ny fampiasana azy?

Leave a Reply