Hodnota buňky jako název proměnné..... – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Hodnota buňky jako název proměnné..... – Visual Basic – Fórum – Programujte.comHodnota buňky jako název proměnné..... – Visual Basic – Fórum – Programujte.com

 

figgir0
Duch
27. 9. 2010   #1
-
0
-

Zdravím řeším problém, možná pro někoho ne:) jakým způsobem předat proměnné jejíž jméno se nachází v buňce A1 hodnotu, která se nachází v buňce B1

příklad v A1 mám hodnotu bunky ActualWeek v B1 mám hodnotu bunky "tyden 38".

Potřebuju funkci, možná jen řádek, kterým přiřadím proměnné z A1 hodnotu z B1.

Tzn. příkaz MsgBox ActualWeek bude hlásit po spuštění makra "Týden 38"

Samozřejmě můžu napsat ActualWeek = Range("A1").Offset(0, 1).Value o což mi právě nejde. Potřebuju dostat do paměti jméno proměnné z buňky nikoliv pouhým zápisem. (figuruje mnoho řádků s názvy proměnných a jejich hodnotami - funkce bude fungovat ve For Next příkazu pro oblast A1 až Axxx )

Nahlásit jako SPAM
IP: 194.228.88.–
CZechBoY+4
Věrný člen
27. 9. 2010   #2
-
0
-

nechápu vůbec co chceš...
chceš aby v Ax byla hodnota z Bx, kde x se ti pořád zvyšuje tim forem? neboli na konci bude sloupecA==sloupecB ?

Nahlásit jako SPAM
IP: 213.192.10.–
figgir0
Duch
27. 9. 2010   #3
-
0
-

To CZechBoY :

Potřebuju makru říct že v sloupci A bude mít jméno proměnné, ve sloupci B pak hodnotu dané proměnné.

př.
buňka A1 obsahuje řetěztec "ActualWeek", buňka B1 pak řetězec "tyden 38".
buňka A2 obsahuje řetězec "LastWeek", buňka B1 pak řetězec "tyden 37".
.
.
.
buňka A35 obsahuje řetězec "DataActualFile", buňka B35 pak řetězec "C:\userdata\DataActual.xls".


Makro bude projíždět od buňky A1 svisle dolů, zjištovat jména proměnných (sl. A) a pomocí Offsetu hodnoty těchto proměnných (sl. B)

V pozdější proceduře bych tímto rád používal hodnoty proměnných např. takto:
MsgBox DataActualFile (aby vyhodilo hlášku "C:\userdata\DataActual.xls")

Běžně se hodnoty proměnných dají zjistit třeba.:
DataActualFile = Range("A35").Offset(0, 1).Value

a proměnné přiřazovat hodnotu takto, ale je zdlouhavé každou proměnnou jmenovitě vypisovat...bude hodně záznamů.


momentálně používám makro které hledá ve sloupci A zmíněnou hledanou proměnnou, a zjišťuje ze sloupce B jejich hodnotu..

hled_hodn = "DataActualFile"
Set vyhov = Range("A:A").Find(hled_hodn)
vyhov.Select
DataActualFile = ActiveCell.Offset(0, 1).value


..ale takto zase musím vypisovat kód pro každou hledanou proměnnou zvlášť, tj. stále je tu můj zásah, že jména proměnných vypisuju ručně.

Říkám si že přeci musí existovat způsob jak tyto jména proměnných a k těmto jménům i jejich hodnoty načíst z buňěk do paměti pomocí běžného cyklu. (Do Loop, For Each Next ...apod.)

Nahlásit jako SPAM
IP: 194.228.88.–
CZechBoY+4
Věrný člen
27. 9. 2010   #4
-
0
-

já pořád nevim co chceš, můžeš poslat nějaký soubor s ukázkou?
jako když klikneš na buňku A2 aby to vypsalo obsah buňky B2 nebo jak?

Nahlásit jako SPAM
IP: 213.192.10.–
figgir0
Duch
27. 9. 2010   #5
-
0
-

To CZechBoY :

Makro se spustí pomocí tlačítka.

Zkusím to opačně. Dejme tomu že máme v buňce B1 toto: "C:\userdata\DataActual.xls" ...standartně přiřadím proměnné tuto hodnotu takto:


Sub jmeno_promenne()

Dim SouborLink As String

SouborLink = Range("B1").Value
MsgBox SouborLink

End Sub

...toto makro tedy vypíše obsah buňky B1 do msgboxu... tj vypíše "C:\userdata\DataActual.xls".



Co potřebuju je aby se slovo "SouborLink" rovněž jako jméno proměnné načítalo z A1. (může tam být v budoucnu cokoliv napsáno, třeba "SouborCestaAdresar" nebo "hejhola"


Prostě chci říct makru ...vem jmeno promenne ze sloupce A a přiřad jí hodnotu z vedlejší buňky ve sloupci B.

(pak už nebudu muset definovat že konkrétně SouborLink se rovná něco z vedlejší buňky ve sloupci B.)

makro poběží dál...až narazí na příkaz MsgBox SouborLink (nebo třeba ono zmíněné hejhola) a ono už bude znát správnou hodnotu z vedlejší buňky ve sloupci B, a tedy v našem případě vypíše "C:\userdata\DataActual.xls".

(chci tam použít Workbooks.Open Filename:=SouborLink, ale pro zjdenodušní zmiňuju MsgBox)

prostě mám problém říct makru ať si slovo které zní "SouborCesta" zjistí sám abych se mohl následně na něj odkázat jako na jméno proměnné:(

Nahlásit jako SPAM
IP: 194.228.88.–
zdenda
~ Anonymní uživatel
257 příspěvků
27. 9. 2010   #6
-
0
-

To asi nejde. A myslím, že ti bude stačit funkce.

. | A        | B

1 | jmeno | pepik
2 | prijmeni | novak

Function data(key As String) As String
data = Range("A1:A2").Find(key).Cells(1, 2)
End Function

Sub test()
MsgBox data("jmeno") & " " & data("prijmeni")
End Sub

Nahlásit jako SPAM
IP: 213.211.51.–
figgir0
Duch
29. 9. 2010   #7
-
0
-

To zdenda :

kruci, tak jednoduché...:) díky.

Nahlásit jako SPAM
IP: 194.228.88.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 1 host

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý