< návrat zpět

MS Excel


Téma: Nastavenie pozície tvaru v sheete rss

Zaslal/a icon 1.2.2014 20:19

Ahoj,

dokáže mi niekto vysvetliť, prečo zakomentovaná časť nefunguje a podmienka if v nezakomentovanej časti kódu funguje? 6 ' With TargetSheet.Shapes("Logo")
' .Left = IIf(ColInTiming = 1, [FirstInTiming].Offset(0, 1).Left, [FirstInTiming].End(xlToRight).Offset(0, 1).Left) - .Width
' End With

With TargetSheet.Shapes("Logo")
If ColInTiming = 1 Then
.Left = [FirstInTiming].Offset(0, 1).Left - .Width
Else: .Left = [FirstInTiming].End(xlToRight).Offset(0, 1).Left - .Width
End If
End With
Potrebujem posúvať tvar v závislosti na počte stĺpcov v sheete. Pokiaľ je posledným použitým stĺpcom stĺpec bunky [FirstInTiming] testované prostredníctvom premennej ColInTiming, tak zarovnať logo na úroveň tejto bunky, pokiaľ vpravo od nej sa nachádzajú ešte nejaké ďalšie použité stĺpce, tak logo zarovnať na úroveň posledného použitého stĺpca.

Viem, že problém je v: IIf(ColInTiming = 1, [FirstInTiming].Offset(0, 1).Left, [FirstInTiming].End(xlToRight).Offset(0, 1).Left) ale fakt by ma zaujímalo, aký???

Pokiaľ má niekto vysvetlenie, tak si ho rád vypočujem, radu, ako to urobiť, nepotrebujem, to mám vyriešené. Nakoniec som mohol napísať i With TargetSheet.Shapes("Logo")
.Left = [FirstInTiming].Offset(0, ColInTiming).Left - .Width
End With
, čo je funkčné a pekne jednoduché. Zaujímalo by ma iba, prečo nešlo v tomto prípade použiť IIf

Zaslat odpověď >

#017640
avatar
"IIf always evaluates both truepart and falsepart, even though it returns only one of them.
Because of this, you should watch for undesirable side effects. For example, if evaluating
falsepart results in a division by zero error, an error occurs even if expr is True."

Nenapsal jsi, v jakém je to kontextu, tak se jen mohu domnívat, že pokud je ColInTiming = 1, tak jsi na poslední buňce v řádku. Druhá část se posune do posledního sloupce a ofset se pokouší číst z buňky mimo rozsah listu. Hodnota druhé části je chyba a celá funkce tak vrátí chybu.citovat
icon #017641
avatar
@lubo: s tou domnienkou si to vystihol presne
Díky za pomoc, trochu sa hanbím za svoju pohodlnosť zobraziť si nápovedu k IIf a tým pádom za oberanie Ťa o čas. Som trochu unavený a vystresovaný, inak by sa mi to snáď nestalo. Proste, základ je overiť si, ako ktorá funkcia pracuje a na to je v prvom rade nápoveda, až potom má človek vznášať dotazy, inak je za chumaja...citovat

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