miten lasketaan yhteen lukujen 50-100 väliltä
Sub Task_1()
Dim Row As Integer
Dim Col As Integer
Dim Summa As Long
Dim Luku As Long
Sheets("Task 1").Select
For Row = 1 To 30
For Col = 1 To 7
If IsNumeric(Cells(Row, Col).Value) Then
Luku = CLng(Cells(Row, Col).Value)
If Luku >= 50 - 100 Then
Summa = Summa + Luku
End If
End If
Next
Next
Range("J6") = Summa
End SubMod. huom: Alahan käyttää kooditageja!
If Luku >= 50 - 100 Then Summa = Summa + Luku End If
Tuossa - markeeraa vähennyslaskua eikä väliä, joten käytännössä katsot onko luku suurempi kuin -50. Et voi keksiä hatusta syntakseja (esimerkiksi väleille) ja olettaa että ne kuuluvat ohjelmointikieleen.
Kokeile koostaa uusi vertailulause seuraavalla ajatuksella: Luvut jotka ovat 50 ja 100 välillä ovat 1) suurempia kuin 50 ja 2) pienempiä kuin 100
MOI Heglund!
vedätkö tuon kaiken ihan vaan omasta hatusta?
Sinulla on viritelmässäsi määritelty rivit 1 - 30 ja sarakkeet 1 - 7 elikä solualue on tiedossa joten...
Sub aliohjelma()
Range("J6").Clear
'tämä käy läpi kaikki alueen A1:G30 solut
For Each solu In Range("A1:G30")
'IsNumeric-funktiota ei tarvita koska Val-funktio palauttaa
'tekstistä tai tyhjästä solusta arvon 0 joita ei edes "lisätä"
'koska ehtolause huolehtii siitä, että vain ne lukuarvot jotka
'ovat on vertailussa suurempia kuin '49 ja pienempiä kuin 101
'(luvut väliltä 50 - 100) lisätään...
If Val(solu.Value) > 49 And Val(solu.Value) < 101 Then
'myöskään mitään ylimääräisiä 'summa' muuttujia ei tarvita
Range("J6").Value = Val(Range("J6").Value) + solu.Value
End If
Next
End SubEn vedä hatusta. Haluan vain oppia koska käytän exceliä paljon töissä :) Huomaan Nea, että olet erittäin pätevä VBA:ssa ja jos olisin yrityksessä sellaisessa asemassa, että voisin palkata työntekin niin se olisi kyllä sinä! Eikä halvallakaan tarttisi tulla! Sulla on pirusti markkina-arvoa!!!!
Heglund kirjoitti:
[Nealla] on pirusti markkina-arvoa!!!!
Ah, kunpa koodarille maksettaisiin viiden minuutin koodista sama summa, joka muuten kuluisi niiden työntekijöiden palkkoihin, jotka tekisivät saman työn käsin... Tai edes yhtä paljon kuin sille työntekijälle, joka on huonoin tuloksin vääntänyt tunnin aivan ihmeellistä koodia, ennen kuin tulee pyytämään foorumilta apua aivan yksinkertaisimpiin alkeisiin. Valitettavasti maailma ei ole niin oikeudenmukainen: palkkaa maksetaan ensisijaisesti työajasta eikä lopputuloksesta.
[offtopic]
Heh, tulee mieleen ensimmäinen kesätyöpaikkani "alan hommissa". Mulle oli varattu koko kesä suht. ison komponenttitietokannan siivoomiseen. Käsipelillä siihen varmasti olisi se aika mennytkin, mutta kun jo silloin osasin vähän koodata ja ymmärsin tietokannoistakin jotain, niin sain homman tehtyä viikossa. Mutta tosiaan, enpä saanut siitä viikosta koko kesän palkkaa :D
[/offtopic]
Aihe on jo aika vanha, joten et voi enää vastata siihen.