aspedott Skrevet 5. august 2009 Del Skrevet 5. august 2009 Hei Lurte på om noen kunne fortelle meg om det er mulig å bruke variabler i en range i en makro i Excel? Eks. Dim nr As Integer sumproduct(--(s2:s+nr<0),--(Q2:Q+nr=84) Syntaksen med +nr er jo sikkert ikke korrekt, men er ment som en illustrasjon på hva jeg ønsker å gjøre. aspedott Lenke til kommentar
Harald Staff Skrevet 5. august 2009 Del Skrevet 5. august 2009 Hvis du spør om det jeg tror du spør om; jajamenn. Men først, ikke bruk Integer i VBA, bruk Long. Integer går bare til 32k og forsinker dessuten koden, den skal nemlig konverteres til Long i runtime. Long er altså greia. Dim Rng As Range Dim Nr As Long Nr = 1958 Set Rng = Sheets(1).Range("S2:S" & Nr) MsgBox "Definert Rng til " & _ Rng.Address(False, False, xlA1) & Chr(10) & _ Rng.Rows.Count & " rader" HTH. Beste hilsen Harald Lenke til kommentar
aspedott Skrevet 10. august 2009 Forfatter Del Skrevet 10. august 2009 Det var akkurat det jeg ville vite, takker så mye Jeg har selvfølgelig fått et oppfølgingsproblem som det hadde vært veldig fint å få hjelp til: Dim Rng As Range Dim Nr As Long Nr = sisterad Set Rng = Sheets("Hoved").Range("S2:S" & Nr) Range("AL5").Select ActiveCell.FormulaR1C1 = WorksheetFunction.CountIf(Rng, "<0") Range("AM5").Select ActiveCell.Formula = "=SumProduct(--(Rng<0),--(Q2:Q1500=84))" Countif virker helt fint men sumproduct virker ikke. Den virker helt fint hvis jeg bytter ut Rng med S2:s1500. Det er noe vesentlig jeg ikke skjønner med sumproduct tror jeg. aspedott Lenke til kommentar
Harald Staff Skrevet 12. august 2009 Del Skrevet 12. august 2009 (endret) Nei problemet er et annet. I den første skriver du inn en formel som en formel -jeg er overrasket over at det der virker. I den andre skriver du inn en tekststreng som en formel, merk at du har ironi-tegn " " rundt, det betyr "tekst, bokstavelig dette". Da må du erstatte det som skal oversettes, celleområdet. Prøv (hvis Rng er i samme ark som formelen) ActiveCell.Formula = "=SumProduct(--(" & Rng.Address & "<0),--(Q2:Q1500=84))" Til slutt; ikke select greier, det er langsomt og stygt og lite brukervennlig. De aller fleste ting kan gjøres uten å endre aktivt ark eller aktiv celle: Range("AM5").Formula = "=SumProduct.... osv Edit: Nei det er et problem til. Rng og Q2:Q1500 må ha like mange rader. Du må f.eks. erstatte 1500 med Nr, eller helst definere onrådet på samme måte som Rng. HTH. Beste hilsen Harald Endret 12. august 2009 av Harald Staff Lenke til kommentar
aspedott Skrevet 20. august 2009 Forfatter Del Skrevet 20. august 2009 Tusen takk, dette svaret løste virkelig mange problemer for meg p.s Den andre rangen med Q har like mange rader så løser den og på samme måte, uttalte meg nok litt uklart om det ja... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå