EXCEL VBA - zjednodusení kodu

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

Moderátor: Mods_senior

Zamčeno
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3377
Registrován: 24 říj 2008 19:50

EXCEL VBA - zjednodusení kodu

Příspěvek od atari »

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
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: EXCEL VBA - zjednodusení kodu

Příspěvek od navstevnik »

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: 3377
Registrován: 24 říj 2008 19:50

Re: EXCEL VBA - zjednodusení kodu

Příspěvek od atari »

Díky moc, ta první varianta je pro mě lepší.
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Přechod z Excel 21 na Excel 24
    od Snekment » » v Kancelářské balíky
    2 Odpovědi
    14471 Zobrazení
    Poslední příspěvek od Snekment
  • Pohoda a excel
    od brownwld » » v Kancelářské balíky
    1 Odpovědi
    7395 Zobrazení
    Poslední příspěvek od atari
  • Excel 2016 - vzorec kombinace podmínek
    od MK_Vs » » v Kancelářské balíky
    5 Odpovědi
    6193 Zobrazení
    Poslední příspěvek od lubo.
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » » v Kancelářské balíky
    5 Odpovědi
    5977 Zobrazení
    Poslední příspěvek od atari

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