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 )
Fórum › Visual Basic
Hodnota buňky jako název proměnné.....
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.)
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é:(
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
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Nazev promenne jako hodnota promenne — založil zak
Jak zjistím název buňky Cells(15,9) — založil clavien
Datum jako název souboru — založil Karel
Název souboru jako proměnná — založil Honza
Název tabulky jako proměnná — založil klinki
Moderátoři diskuze