Zápis vzorců do tabulky pomocí kódu VBA

 

Zápis složitějších vzorců do tabulky pomocí kódu VBA je pěkná dřina když neznáte fintu, kterou se v žádné učebnici ani od žádného lektora nedozvíte. To je know how z praxe. Marně se neříká: kdo to umí ten to dělá, kdo to neumí ten to učí.

 

Ukázku zápisu vzorců si ukážeme na primitivním příkladu. Máme jednoduchou tabulku do kteé postupně připisujeme název zboží, jednotkovou cenu a množství. Chceme ve sloupci cena mít vzorec, který jí spočítá. Nechť může mít tabulka už milion řádků.

 

 

 

 

            Sub Makro1()

              '

              ' Makro1 Makro

              ' Makro zaznamenané 22.1.2014, Dell

              '

 

              '

              Range("D2").Select

              ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"

              Range("D3").Select

           End Sub

 

  

            Private Sub Worksheet_Change(ByVal Target As Range)

              'tato udalost nastane kdyz zapiseme do nejake bunky listu

 

              'cislo radku a sloupce  zmenene bunky do promennych

              r = Target.Row

              s = Target.Column

 

              'testuji zda radek bunky do ktere pisu je vetsi nez 1 a sloupec je C

              If r > 1 And s = 3 Then

                'kdyz ve zmenene bunce neni cislo, ukonci udalost

                If Not IsNumeric(Target) Then Exit Sub

 

                'testuji zda bunka kterou menime neco obsahuje nebo je prazdna

                If CStr(Target) <> "" Then

                  'bunka neni prazdna, do sloupce D zapis vzorec

                  Cells(r, 4) = "=RC[-2]*RC[-1]"

                Else

                  'bunka je prazdna vymaz vzorec ve sloupci D

                  Cells(r, 4) = ""

                End If

              End If

            End Sub

 

Stažení souboru

 

Zpět na hlavní stránku