2017-07-03 6 views
0

Zuerst speichere ich alle gewünschten Daten in einem Array, dann vergleiche ich es mit einer Spalte; wenn es übereinstimmt, nehme ich den Offset des Wertes und lege ihn in eine andere Spalte.Vergleichen von Zellen mit Array in VBA

Aber hier im Array, habe ich "ungültiger Qualifier" -Fehler. Was mache ich falsch?

Sub database_updator() 

Dim dataa As Range, dataCel1 As Range, dataj As Range, datacel2 As Range, datazc As Range, datacel3 As Range, SrchRngaa As Range, cel As Range 

Dim data As String, datatext As String, PDS_NAME As String, Database_data As String 
Dim n As Integer, xx As Integer, z As Integer 
Set dataa = Range("a16:a100") 
Set datazc = Range("zc17:zc50") 
Set SrchRngaa = Range("a16:a100") 
Dim arr(1 To 85) As String 
x = 16 
For n = 1 To 85  'storing data into array 
    arr(n) = Range("yx" & x).Value 
    x = x + 1 
Next n 


' loop thorugh cells in column 
For Each dataCel1 In datazc 
    For n = 1 To 85 
     If arr(n) = dataCel1.Value Then 
      datatext = "true" 
     Exit For 
     End If 
    Next n 

' check if current value in column has a match in another column 
    If datatext = "true" Then 
     PDS_NAME = arr(n).Value ' ERROR OCCURS HERE 
    Database_data = dataCel1.Offset(0, 2).Value 
      For Each cel In SrchRngaa 
       If PDS_NAME = "" Then 

       Exit For 
       ElseIf cel.Value = PDS_NAME Then 

         cel.Offset(0, 2).Value = Database_data 

       Exit For 

       End If 
      Next cel 
    End If 




Next dataCel1 

End Sub 
+6

Sie brauchen nicht die ".Value" in 'arr (n) .Value' – MiguelH

+0

Es gibt keine' .Value' Eigenschaft eines Arrays. Versuchen Sie einfach '= arr (n)' – Ambie

Antwort

0
PDS_NAME = arr(n).Value 

this should be changed to: 

PDS_NAME = arr(n) 
Verwandte Themen