Hei,
Ei ole vielä selvinnyt, että miten tänne laitetaan uusi kysymys ja siksi kysyn täällä, kun excelistä puhutaan. (Mod. loi aiheen. Jos et näe edes noin pientä vaivaa asian selvittämiseksi, miten voit odottaa, että muut viitsivät nähdä vaivaa auttaakseen sinua?)
Probleema olisi seuravanlainen: yritän lukea Sheet1:ltä
1D taulukon (sisältää 5 kpl desimaalilukuja) visual basic koodin puolelle:
Dim x As Variant x = Sheet1.Range("B1:B5").Value
Solut B1...B5 sisältää ulkolämpötilan arvoja.
Miten saan tuosta x matriisista yhden lämpötilalukuarvon luettua muuttujaan
T_u?
t. mk
Mod. lisäsi kooditagit!
Kokeile taulukkoa vaikka näin:
Dim x(1 to 5) As Variant x(1) = Sheet1.Range("B1").Value x(2) = Sheet1.Range("B2").Value x(3) = Sheet1.Range("B3").Value x(4) = Sheet1.Range("B4").Value x(5) = Sheet1.Range("B5").Value
(tee luuppi isommille määrille)
Mod. lisäsi kooditagit!
Moi mabkuosa!
testaa...
Dim x Set x = Range("B1:B5") MsgBox x(1) MsgBox x(2) 'jne... Set x = Nothing
jos haluat loopata...
Dim x, y Set x = Range("B1:B5") y = x.Value For z = LBound(y) To UBound(y) MsgBox x(z) Next Set x = Nothing
Hei,
Kiitos vastauksista. Tuohon matriisiin tulee enemmänkin lukuja esim 24 h x 31 päivän lämpötilat.
Ymmärtääkseni jtha:n ehdottama luuppi voisi olla:
i = 0 Do i = i + 1 x(i) = Sheet1.Range("B1") Until i =24 x 31
Tässä kysymykseksi jää, että miten "B1" saadaan muuttumaan "B2":ksi, "B3":si jne.
Ilmeisesti Nea:n luuppi sijoittaa Sheet1:n lämpötilojen lukuarvoja (yksi kerrallaan soluista B1:sta B5:een?) muuttujaan x(Z) ja voitaisiin kirjoittaa, että T_u = x(z) solujen arvoja luettaessa? Mutta miksi eka versiossa MsgBox x(i), i = 1, 2,... komento ja Set x = nothing ovat mukana, onko tuo MsgBox sitä varten, että voidaan vain "boksista katsoa" niitä lt arvoja?
Olen kyllä vba:lla jonkin verran koodannut mutta nämä matriist/vektorit ovat outoja.
t. mk
Mod. lisäsi kooditagit!
Vielä lisäys. Minulla on
do
.
.
.
until
muotoinen koodi, jossa yhdellä kierroksella tarvitaaan vain yhtä taulukon B1, B2... (Sheet1) sisältämää lämpötila-arvoa. Ts. eri solun arvo / kierros.
Moi. neau33 esitti kätevämmän keinon, mutta jos haluat tehdä noin niin
lisäile tähän tyyliin:
x(i) = Sheet1.Range("B"& trim(str(i)))
Mod. lisäsi kooditagit, voisiko niitä opetella käyttämään?
Aihe on jo aika vanha, joten et voi enää vastata siihen.