Just nu i M3-nätverket
Gå till innehåll
Shape_sthlm

Loopa igenom celler i namngivet område

Rekommendera Poster

Jag har ett område på en flik i kolumn E. Området kan variera utifrån hur många poster där finns, därför har jag namngivet det och kollar det "Koppling"

 

=FÖRSKJUTNING(SALDO!$E$2;0;0;ANTALV(SALDO!$E:$E)-1;1)

 

I varje cell hämtas ett värde upp (VTSÖK). Om VTSÖK returnerar ett fel så visas strängen "ej kopplad".

 

Med koden nedan vill jag se ifall det finns några fel, men jag kommer inte förbi första raden kod.

 

 

Set myRange = ThisWorkbook.Names("Koppling").RefersTo

Får runtime error 424 (Objekt krävs)

 

Set myRange = ThisWorkbook.Names("Koppling").RefersToRange

får runtime error 1004 (Program eller objektidentifierat fel)

 

Hoppas ni kan hjälpa mig komma vidare i detta. Thanks!!! /M

Private Sub cmdCheckError_Click()

Dim ErrorFlag As Boolean, myRange As Range, c As Range

' 1. Kontrollera ifall det finns fel i kopplingar eller om koppling saknas.
Set myRange = ThisWorkbook.Names("Koppling").RefersTo
For Each c In myRange.Cells
   If c.Value = "ej kopplad" Then ErrorFlag = True
Next c

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Du får skriva:

  	Set myRn = Range("koppling")

 

 

visserligen fungerar det även med

Set myRn = Range(ThisWorkbook.Name("Koppling").RefersTo) 

men det är att gå över ån för vatten så att säga.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Kanske att du måste ange vilket blad referensen är på?

 

Typ

set myRn = Blad1.Range("koppling")

 

Om du undersöker namnet med

Debug.Print ThisWorkbook.Names("koppling").RefersTo

vad får du då fram för text i direktfönstret?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Om du undersöker namnet med

Debug.Print ThisWorkbook.Names("koppling").RefersTo

vad får du då fram för text i direktfönstret?

 

 

=OFFSET(SALDO!$E$2,0,0,COUNTA(SALDO!$E:$E)-1,1)

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

LÖST:

 

med följande omskrivning så fungerar det fint.

 

Set mySheet = Worksheets("SALDO")
With mySheet
Set myRange = .Range("Koppling")
   For Each c In myRange.Cells
       If c.Value = "ej kopplad" Then ErrorFlag = True
   Next c
End With

 

Känns bara onödigt eftersom vitsen med ett namn är att det är ett specifikt område i arbetsboken. Dvs samma namn kan väl inte finnas på olika arbetsblad?!

 

 

/M

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Om koden står på ett arbetsblads kodblad och namnet refererar till celler på annat blad, då måste du ange vilket blad namnet här hemma på. Detta eftersom det implicit står Me.Range("koppling") när du skriver Range("koppling") där.

 

Om koden står i en modul är det mjukare, då kan du använda namnet utan ange blad.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...