Avatar billede Rossiex Novice
13. februar 2014 - 14:38 Der er 4 kommentarer og
1 løsning

VBA fejl ved brug af lopslag

Hej

Er der nogen der kan hjælpe

Jeg skal lave et Lopsalg i VBA som checker en dato "rROW1" i en tabel "Hentkalender"  (kolonne D)  og returnere true/false eller 1/0. i (kolonne E) og skal herefter farve feltet. Herefter skal der laves et yderligere Lopsalg i en anden tabel som skal indsætte en tekst i sammen kolonne.

Men mit Lopsalg laver nedenstående fejl

"Run-time error '1004'

"Kan ikke angive egenskaben Vlookup for klassen WorkSheetFunction"

På forhånd tak.

Hilsen
Larsen


Sub TilRetLinier()

Dim rROW1 As String
Dim Res  As Variant

Sheets("Udskrift").Select
Range("R5").Select

Do Until ActiveCell = "$AD$5"
      rROW1 = ActiveCell.Value  'Dato her 01-02-2013
     
      'Opslag i Ark "HentKalender" med Dato i kolonne D og 0 eller 1 i kolonne E
     
      Res = Application.WorksheetFunction.VLookup(" & rROW1 & ", Worksheets("HentKalender").Range("D1:E5000"), 2, 0)
 
      If Res = 1 Then
        ActiveCell.Interior.ColorIndex = 3
      End If

      ActiveCell.Offset(0, 1).Activate
  Loop
End Sub
Avatar billede kabbak Professor
13. februar 2014 - 14:46 #1
prøv også med
Dim rROW1 As Date

Res = Application.WorksheetFunction.VLookup(rROW1 & "," & Worksheets("HentKalender").Range("D1:E5000"), 2, 0)
Avatar billede kabbak Professor
13. februar 2014 - 14:47 #2
snare sådan

Res = Application.WorksheetFunction.VLookup(rROW1, Worksheets("HentKalender").Range("D1:E5000"), 2, 0)
Avatar billede Rossiex Novice
13. februar 2014 - 19:40 #3
Tak for svaret

Jeg har rettet koden, men får stadig samme fejl

Run-time error '1004'

Kan ikke angive egenskaben Vlookup for klassen Worksheetfunction
Avatar billede Rossiex Novice
13. februar 2014 - 22:38 #4
Fandt selv en løsning

Der skulle bruges en cLng(DateSerial omskrivning for at datoen kunne læses.

Er der evt. nogen der ved hvordan jeg henter datoerne ind fra et område med datoer. Ligger i et ark i området R5:AC35


Sub TilRetLinier()

Dim Res As Date

Sheets("Udskrift").Select
Range("R5").Select

Do Until ActiveCell.Address = "$AD$5"
     
      sDATE = CLng(DateSerial(Year(ActiveCell.Value), Month(ActiveCell.Value), Day(ActiveCell.Value)))
     
      Res = Application.WorksheetFunction.VLookup(sDATE, Worksheets("HentKalender").Range("D:E"), 2, 0)
 
      If Res = 1 Then
        ActiveCell.Interior.ColorIndex = 3
      End If

      ActiveCell.Offset(0, 1).Activate
  Loop
End Sub
Avatar billede Rossiex Novice
21. februar 2014 - 23:09 #5
Løst
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