EXCEL VBA - zjednodusení kodu Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3362
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

EXCEL VBA - zjednodusení kodu

Příspěvekod atari » 19 dub 2010 10:33

Mam dávku kde do proměnné "prac" dosadim postupně hodnoty k1, k2 až k3 a zavolám dávku. Je nějaká možnost jak tuto dávku zjednodušit? Tech hodnot "k1, k2..." bude totiž více. Mě napadlo, jestli třeba neexistuje nějaký příkaz laicky řečeno, vem postupně všechny "k" dosaď do "prac" a proved dávku.

Kód: Vybrat vše

Option Explicit
Public pom As Integer
Public prac As Integer
Sub zapis()
Dim k1 As Integer
Dim k2 As Integer
Dim k3 As Integer

Worksheets("V1").Select
k1 = 7
k2 = 53
k3 = 99

prac = k1: Call davka
prac = k2: Call davka
prac = k3: Call davka

End Sub
Sub davka()
pom = Sheets("M1").Cells(prac - 1, 9)
Cells(3, 2) = Sheets("M1").Cells(prac + pom, 14)
End Sub

Reklama
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: EXCEL VBA - zjednodusení kodu  Vyřešeno

Příspěvekod navstevnik » 19 dub 2010 12:05

Zjednodusit proceduru je mozne takto:

Kód: Vybrat vše

Sub zapis()
  Dim Davky, i As Integer
  ' zde je seznam parametru prac
  Davky = Array(7, 53, 99)
  Worksheets("V1").Select
  For i = 0 To UBound(Davky)
    prac = Davky(i)  : Call davka
  Next i
End Sub

Dalsi zjednoduseni je, ze parametr prac bude predavan pri volani procedury davka, treba takto (i kdyz by to chtelo napsat cele jinak):

Kód: Vybrat vše

Option Explicit

Sub zapis()
  Dim Davky, i As Integer
  ' zde je seznam parametru prac
  Davky = Array(7, 53, 99)
  Worksheets("V1").Select
  For i = 0 To UBound(Davky)
    Davka Davky(i)
  Next i
End Sub

Sub Davka(ByVal prac As Integer)
Dim pom As Integer
  pom = Sheets("M1").Cells(prac - 1, 9)
  Cells(3, 2) = Sheets("M1").Cells(prac + pom, 14)
End Sub

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3362
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: EXCEL VBA - zjednodusení kodu

Příspěvekod atari » 21 dub 2010 12:23

Díky moc, ta první varianta je pro mě lepší.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12867
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    6129
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41
  • Excel - výpočet nočních hodin Příloha(y)
    od Uziv00 » 17 říj 2024 11:22 » v Kancelářské balíky
    3
    3815
    od lubo. Zobrazit poslední příspěvek
    24 říj 2024 00:00
  • Excel 2016 - vzorec kombinace podmínek Příloha(y)
    od MK_Vs » 08 led 2025 17:56 » v Kancelářské balíky
    5
    4636
    od lubo. Zobrazit poslední příspěvek
    14 led 2025 00:51
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » 24 dub 2025 10:51 » v Kancelářské balíky
    5
    4472
    od atari Zobrazit poslední příspěvek
    26 dub 2025 09:11

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host