Avatar billede svith1 Nybegynder
21. marts 2006 - 21:08 Der er 11 kommentarer og
1 løsning

makro til visning af skiftende cellereferencer i én celle

Jeg har brug for en makro, der knyttes til en tastefunktion (Ctrl ø).
A2 indeholder en relativ reference til C2. En kørsel af makroen skal skifte den relative reference i A2 fra C2 til C3. For hver kørsel af makroen skal visningen i A2 skifte fra C2 til C3, fra C3 til C4, fra C4 til C5, etc.

Hvordan ser den ud?
Kan nogen hjælpe?
Jeg bruger Excel 2003.

mvh

Flemming
Avatar billede kabbak Professor
21. marts 2006 - 21:37 #1
Du kan ikke bruge ø, jeg kan ikke få det til at virke, den godtager vist ikke danske bogstaver


Dim I
Sub Makro1()
I = I + 1
    Range("A2").Formula = "=R[" & I + 1 & "]C[2]"
If I = 100 Then I = 1' når den når C100 starter den forfra, ret til den sidste du vil se
End Sub
21. marts 2006 - 21:40 #2
Public Sub Demo()
    Dim sFormula As String
    Dim lRowNo As Long
   
    sFormula = Worksheets("Sheet1").Range("A1").FormulaR1C1
    lRowNo = CLng(Mid(sFormula, InStr(1, sFormula, "[") + 1, _
            InStr(InStr(1, sFormula, "["), sFormula, "]") - InStr(1, sFormula, "[") - 1))
    Worksheets("Sheet1").Range("A1").FormulaR1C1 = "=R[" & CStr(lRowNo + 1) & "]C[2]"
End Sub
21. marts 2006 - 21:40 #3
kabbak-> hvad sker der med variablen I når regnearket har været lukket? I=0
Avatar billede kabbak Professor
21. marts 2006 - 21:41 #4
ja flemming
21. marts 2006 - 21:44 #5
ja, det kunne jeg jo godt se, hvorfor jeg kunne forestille mig, at dit forslag ikke holder på et regneark der bruges flere gange.
Avatar billede svith1 Nybegynder
21. marts 2006 - 22:59 #6
Jeg har forsøgt at køre løsningen fra flemmingdahl, men den melder runtime error '5'. Invalid procedure call or argument.
I visual basic markerer den følgende to linjer med gult:

    lRowNo = CLng(Mid(sFormula, InStr(1, sFormula, "[") + 1, _
            InStr(InStr(1, sFormula, "["), sFormula, "]") - InStr(1, sFormula, "[") - 1))

Jeg har ændret arknavn fra sheet til ark to steder.
   
Jeg står i A2, værdier der skal vises står i C2-C5000
Hvad er problemet?

Flemming
Avatar billede excelent Ekspert
21. marts 2006 - 23:09 #7
prøv evt. denne

Sub Changeref()
Dim r, r2
r = [a2].Formula
r2 = Val(Mid(r, 3, 4)) - 1
[a2].Activate
ActiveCell.FormulaR1C1 = "=R[" & r2 & "]c[2]"
End Sub
Avatar billede svith1 Nybegynder
21. marts 2006 - 23:15 #8
excelent, den virker optimalt.
Avatar billede excelent Ekspert
21. marts 2006 - 23:16 #9
OK
Avatar billede svith1 Nybegynder
21. marts 2006 - 23:18 #10
hvordan tildeler jeg excelent point, når der står et andet navn i acccepter,afvis ruden.
Avatar billede svith1 Nybegynder
21. marts 2006 - 23:18 #11
Tak
Avatar billede excelent Ekspert
21. marts 2006 - 23:21 #12
Velbekom
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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