Avatar billede masteraaen Novice
09. december 2003 - 12:05 Der er 7 kommentarer og
1 løsning

Skriv til celle!

Jeg kan SIMPELTHEN ikke få min excel-vba til at skrive noget ud til mit regneark andet en lige præcis værdien af min function i den celle, hvor jeg kalder den.

Men i min function vil jeg gerne have skrevet nogle af værdierne ud til andre celler.

Jeg kan bare ikke få syntaksen til at passe.

Har prøvet med fx:

1)
Range("k27").Select
ActiveCell.FormulaR1C1 = "maxS"

2)
Worksheets("Ark1").Range("k27").FormulaR1C1 = "maxS"

3)
Sheets("Ark1").Select
Range("k27").Select
ActiveCell.FormulaR1C1 = "maxS"

Virker ikke!
Når jeg tilføjer denne kodestump i min function virker den ikke.

Hvordan "#¤#¤% får man det VBA til at udskrive noget i nogen celler?

Morten
Avatar billede martin_moth Mester
09. december 2003 - 12:31 #1
1. Opteg en macro
2. skriv noget i en celle
3. Kik i den automatisk generede kode:

    Range("D10").Select
    ActiveCell.FormulaR1C1 = "Hej"

Det er jo det su selv har skrevet - prøv at lav en lille sub, der skriver til en celle, og kør så den alene - så virker det garanteret
Avatar billede kabbak Professor
09. december 2003 - 18:49 #2
du kan IKKE skrive til andre celler i en funktion, den kan kun skrive til den celle den er i.

Du skal bruge en makro for at skrive i mange / andre celler.

kabbak
Avatar billede martin_moth Mester
09. december 2003 - 18:58 #3
kabbak: Det kan jeg da sagtens, se selv:

Sub Makro1()
  If Femtabel(5) = True Then
    MsgBox "Det gik godt"
  Else
    MsgBox "Det gik skidt"
  End If
End Sub

Private Function Femtabel(antal) As Boolean
  Dim i As Integer
  On Error GoTo ErrLabel
  Femtabel = True
  For i = 1 To antal
    Cells(i, 1).Value = i * 5
  Next i
  Exit Function
ErrLabel:
  Femtabel = False
End Function
Avatar billede kabbak Professor
09. december 2003 - 19:04 #4
OK på den måde

prøv så at kalde den med kriterier i en celle, som man normalt bruger en funktion,

Virker den så

Function Femtabel(antal) As Boolean
  Dim i As Integer
  On Error GoTo ErrLabel
  Femtabel = True
  For i = 1 To antal
    Cells(i, 1).Value = i * 5
  Next i
  Exit Function
ErrLabel:
  Femtabel = False
End Function
Avatar billede martin_moth Mester
09. december 2003 - 20:16 #5
Jeg bruger normalt en funktion på den måde jeg har vist.
Om den virker på den anden måde - det gør den sikkert ikke når du siger det :o)
Avatar billede kabbak Professor
09. december 2003 - 20:59 #6
også med funktionen som =Sum(a1:a23), hvis mm.
Avatar billede michaelrar Seniormester
12. december 2003 - 13:20 #7
Range("k27").Value = "maxS"
Avatar billede martin_moth Mester
12. december 2003 - 14:10 #8
masteraaen ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester