Endnu et forsøg - for hver formel vises "bestanddelene" i en message-box - håber du kan komme videre herfra:
Sub test() Dim antalR, antalK Worksheets("Ark1").Activate Rem find dimensioner for arket antalR = ActiveCell.SpecialCells(xlLastCell).Row antalK = ActiveCell.SpecialCells(xlLastCell).Column
For r = 1 To antalR For k = 1 To antalK If Cells(r, k).HasFormula = True Then formelElementer r, k End If Next k Next r End Sub Private Sub formelElementer(r, k) Dim antalKol, element As String
Cells(r, k).Select element = ActiveCell.Formula + vbCr
Jeg er imponeret! Virkelig smart. Det var netop det jeg søgte. 100 point er helt klart hjemme!
Hvis du kan tilrette funktionen så den virker på hvis en af argumenterne findes i et andet ark giver jeg 50 point til? F.eks. ved funktionen :=LOPSLAG(A11;Ark2!A1:B19;2;FALSK).
Øhh: Jeg er ny bruger og har aldrig givet point før. Hvordan gør jeg ?
Version X: Dim makroNavn As String Sub test() Dim antalR, antalK Worksheets("Ark1").Activate Rem find dimensioner for arket antalR = ActiveCell.SpecialCells(xlLastCell).Row antalK = ActiveCell.SpecialCells(xlLastCell).Column
For r = 1 To antalR For k = 1 To antalK If Cells(r, k).HasFormula = True Then formelElementer r, k End If Next k Next r End Sub Private Sub formelElementer(r, k) Dim antalKol, element As String, arkNavn
Cells(r, k).Select element = ActiveCell.Formula + vbCr
Rem Test om henv. til andet ark If InStr(element, "!") > 0 Then arkNavn = isolerArk(element) End If
For e = 1 To antalKol Cells(r, k).Select ActiveCell.ShowPrecedents
ActiveCell.NavigateArrow True, e element = element + arkNavn + Selection.Address + vbCr
If arkNavn = "" Then Cells(r, k).Select End If
ActiveCell.ShowPrecedents Remove:=True
If arkNavn <> "" Then ActiveWorkbook.Sheets(1).Activate ActiveCell.ShowPrecedents Remove:=True End If Next e
MsgBox (element) End Sub Private Function isolerArk(element) Dim p p = InStr(element, "!") For f = p To 1 Step -1 tegn = Mid(element, f, 1) If InStr("(;,=", tegn) > 0 Then isolerArk = Mid(element, f + 1, p - f) Exit Function End If Next f isolerArk = "" End Function
Troede egentlig at jeg havde sendt dig et svar, men nu ser jeg har det har jeg ikke. Undskyld !
Jeg giver dig pointen for løsningen selv om makroen virker ikke helt.
VED "=LOPSLAG(D1;Ark3!$B$1:$B$5;2;FALSK)" findes kun $B$1:$B$5. D1 bliver ikke fundet
Årsagen er at antalKol i makroen kun er 1.
Har du en kommentar - eller skal jeg oprette et nyt spørgsmål ?
Tak for hjælpen Koppelgaard
Synes godt om
Ny brugerNybegynder
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.