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: 3207
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: 3207
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
  • Excel a OneDrive
    od sginfo » 11 zář 2023 15:28 » v Kancelářské balíky
    16
    6367
    od mirekol Zobrazit poslední příspěvek
    20 říj 2023 08:31
  • excel-posun makra
    od actionboy » 12 bře 2024 18:59 » v Kancelářské balíky
    1
    446
    od Grimm Zobrazit poslední příspěvek
    12 bře 2024 21:43
  • Excel komparacedvou soborů Příloha(y)
    od teichmann.ondrej » 15 dub 2024 17:26 » v Kancelářské balíky
    11
    3409
    od teichmann.ondrej Zobrazit poslední příspěvek
    22 dub 2024 15:45
  • Excel - vlastní formát Příloha(y)
    od Story-Long » 11 srp 2023 14:50 » v Kancelářské balíky
    3
    2050
    od Story-Long Zobrazit poslední příspěvek
    14 srp 2023 10:11
  • Excel - problém se vzorci
    od honzzicek » 28 čer 2023 21:45 » v Kancelářské balíky
    2
    1855
    od honzzicek Zobrazit poslední příspěvek
    01 črc 2023 08:57

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

Kdo je online

Uživatelé prohlížející si toto fórum: Facebook [Bot] a 42 hostů