< návrat zpět

MS Excel


Téma: COMBOBOX & CELLS PROMĚNNÁ rss

Zaslal/a 2.3.2017 10:27

Private Sub ComboBox8_Change()
DIM X AS LONG
PRZ10.CAPTION = SHEETS("1").CELLS(14,X)
IF ME.COMBOBOX8.VALUE = "CENA" THEN
X = 2
END IF
IF ME.COMBOBOX8.VALUE = "NESHODA" THEN
X = 3
END IF

SPUŠTĚNÍ = KOLIZE.
VÍTE NĚKDO?

Zaslat odpověď >

#035223
avatar
VYŘEŠENO.citovat
#035225
elninoslov
PRZ10.CAPTION = SHEETS("1").CELLS(14,X)
X=0 teda chyba...citovat
#035644
avatar
Celá konstrukce (2x IF...ENDIF) je zbytečně složitá. Jednak je poněkud masochistické 2x volat vlastnost Value comboboxu (to je dvojí pomalé volání funkce!), jednak je zbytečné ME (formuláře znají své děti) a jednak je zbytečné porovnávat stringy (vpravo) s varianty (vlevo, výsledky vlastnosti Value), když mnohem přirozenější a rychlejší je porovnávat stringy se stringy. Vždyť přece stačí

Dim S$, X&
S = COMBOBOX8.Text
X = IIf(S = "CENA", 2, IIf(S = "NESHODA", 3, X))

nebo

Dim S$, X&
S = COMBOBOX8.Text
If S = "CENA" then X = 2 Else If S = "NESHODA" Then X = 3

To druhé ukládá Excel dost nehospodárně, funkci IIf ukládá líp.

A pokud v comboboxu nemohou být jiné hodnoty než uvedené dva texty, pak má asi combobox v rozevíracím seznamu uvedeny právě tyto dva texty; dejme tomu, že v pořadí "CENA", "NESHODA". Pak přece stačí

Dim X&
X = COMBOBOX8.ListIndex + 2citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje