Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA ja Excel

Piizz [20.10.2005 21:45:32]

#

Moi,

Alla oleva laskee excelissä desibelejä yhteen
(esim. 10dB + 10dB = 13dB)

kokdb(A1;A2;A3;A4;A5)

Tarkoitus olisi saada funktio toimimaan siten, että summan voisi laskea samaan tyyliin kuin tavallisenkin summan eli

kokdb(A1:A5)

Onko mahdollista ja miten... en ole koodaajaguru, joten toivottavasti en kysy ihan simppeliä asiaa... googlella tms. löytyy vain tuo puolipistenotaatio.

-------------

Function kokdb(ParamArray dB())

For n = LBound(dB) To UBound(dB)
    If Val(dB(n)) > 0 Then S = S + 10 ^ (dB(n) / 10)
Next n

kokdb = 10 * (Log(S) / Log(10#))

End Function

-------------

Piizz

Piizz [22.10.2005 01:44:15]

#

Hmm...

Eli tuo Excelissä voidaan kirjoittaa summa(A1:A3), joka on sama kuin summa(A1;A2;A3). Tahtoisin tuon oman kaavani toimimaan tuon (A1:A3) tyyliin (ei tällä hetkellä toimi niin, vaan ainoastaan siten, että annetaan nuo kaikki solut yksitellen).

BadSource [24.10.2005 12:14:13]

#

Yksi vaihtoehto alla...

Private Sub Jotain(alue As String)
    Dim solu As Range

    For Each solu In Range(alue) 'Käydään läpi solut annetulta alue:lta
       'Lisätään soluun arvo "bar", jos arvo on "foo", muuten "foo"
       solu.Value = IIf(solu.Value = "foo", "bar", "foo")
    Next solu
End Sub

'Lisätään Workbook:iin nappula, jolla demota "hienoa" ohjelmaamme...
Private Sub CommandButton1_Click()
    Jotain "A1:B3" 'alue A1:stä B3:een
End Sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta