Stránka 1 z 1

EXCEL VBA - zjednodusení kodu

Napsal: 19 dub 2010 10:33
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

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

Napsal: 19 dub 2010 12:05
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

Re: EXCEL VBA - zjednodusení kodu

Napsal: 21 dub 2010 12:23
od atari
Díky moc, ta první varianta je pro mě lepší.