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 Sub
Mod. 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 Sub
En 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.