< návrat zpět

MS Excel


Téma: zapsaní proměnné rss

Zaslal/a 29.11.2017 16:25

dobrý den, našel jsem tu jeden příklad co jsem použil a ještě bych potřeboval malou úpravu. řádek vypadá takto
souboryktere = Dir("*.jpg ")
tohle mě najde všechny jpg soubory a já bych potřeboval, před hvěždičku dostat hodnotu z buňky "A1"
buňka "a1" obsahuje "11450" takže aby mě našlo vše 114050*.jpg děkuji moc

Zaslat odpověď >

#038532
avatar
Řešením může být spojování řetězců přes ampersand.
P.

Např.:
Sheets("List1").Range("A1").Value & "*.jpg"citovat
#038534
avatar
děkuji, přesně tak to má býtcitovat
#038564
avatar
Zbytečně složité a ukecané. Především list má kódové jméno (nejspíš List1) a je nesmysl zadávat ho Sheets("List1"), když bohatě stačí napsat List1. Rovněž Range.Value je zbytečnost, když přece Value je předdefinovaná vlastnost a stačí tedy jen Range. Zatím tedy

List1.Range("A1") & "*.jpg"

Samozřejmě mnohem lepší než pracovat s pomalou vlastností Value typu Variant je normální pracovat s vlastností Text typu string - ten totiž potřebuješ, tedy

List1.Range("A1").Text & "*.jpg"

A i to je zoufale začátečnické a nemotorné. Normální programy pracují s pojmenovanými rozsahy, protože jen tehdy změny rozložení dat v listu neovlivní program.

Pojmenuj svou buňku A1 třeba Franta a pak napiš

Range("Franta").Text & "*.jpg"

nebo pohodlněji (a jen nepatrně pomaleji)

[Franta].Text & "*.jpg"citovat
#038571
avatar
možností je několik jak tak koukám, nicméně k mé potřebě to i tak funguje. děkujucitovat
icon #038576
eLCHa
Jen technická. Pokud se budete držet zmínněmých rad (předdefinovaná vlastnost, rychlejší 'text' a nevím co ještě ) v budoucnu se jistě setkáte se situací typu "co to proboha dělá"...citovat
#038731
avatar
dobrý den, našel jsem si jeden příklad který mě funguje jen jednou :-( potřebuju podmínku která mě říká pokud je aktivní buňka v rozmezí (C18:D48) pak mě řekni že to je "duben", pokud je aktivní buňka v rozmezí (K18:L48) pak mě řekni že to je "květen" prosím o radu

Dim Bunka As Range
For Each Bunka In Selection
If Bunka.Row < 48 Then
If Bunka.Column = 3 Then
MsgBox "vybrán duben."
End If
End If
Next Bunkacitovat
icon #038737
avatar
Ako to súvisí s pôvodnou otázkou vo vlákne?

No nič, trebárs takto:Sub test()
Dim MonthSelected As Boolean
If Not Intersect(ActiveCell, [C18:D48]) Is Nothing Then
MsgBox "duben"
MonthSelected = True
End If
If Not Intersect(ActiveCell, [K18:L48]) Is Nothing Then
MsgBox "květen"
MonthSelected = True
End If
If MonthSelected = False Then MsgBox "měsíc nevybrán"
End Sub

Asi by bolo dobré uvedomiť si, že aktívnou bunkou môže byť vždy len jedna. Riešenie odpovedá na otázku.citovat
#038738
avatar
super, skvělé funguje, děkuji moc. jasně já se špatně vyjádřil v tom smyslu že mě má hlídat to, jestli mám aktivní buňku v dané oblasti. a druhý dotaz, vím že mě tu bylo zotpovězeno a nechtěl jsem dávat další vlákno.
děkuji za ochotu. Martincitovat

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