Onnistuuko?
Esim. pääohjelmassa pitää verrata kahta päivää keskenään (a ja b). Toinen näistä (b) haetaan tiedostosta erillisen aliohjelman kautta, koska jos tuossa tiedostoaliohjelmassa tulee virheitä, niille on omat hoitokeinot kuin jos virheitä tulee pääohjelmassa.
Jos siis tuolle tiedoston tiedoille annetaan aliohjelmassa arvo b, niin voiko ja miten sitä kutsutaan pääohjelmassa?
En ole varma VBA:sta, mutta perus-VB:ssä muuttuja jaetaan aliohjelmien ja pääohjelman kesken määrittelemällä se aivan koodin alussa (General, Declarations) aliohjelmien ulkopuolella.
Eikö funktio oisi tähän paikallaan?
Sub jee() a = 10 b = makkara End Sub Function makkara() As Integer 'lue se luku vaikka muuttujaan "sieni" makkara = sieni End Function
Funktio on tosiaan yleensä loogisin tapa tehdä tuollainen. Muuttujien jakamista pitäisikin oikeastaan välttää silloin, kun homman voi hoitaa myös funktiolla.
Kiitokset Spongille, vaikka hyvä makkara menikin pilalle.
Näytti toimivan tuo, mutta tein myös sellaisen havainnon, että toimii vain, jos tuo pääohjelma ja funktio ovat samassa objektissa, kuten formi tai työkirja (excel -sovellus). Sen sijaan esim. workbookista yli taulukon tuo kutsuminen ei toiminut. Mutta tällä ei niin väliä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.