2017-07-03 341 views
0

首先,我將所有需要的數據存儲到數組中,然後將其與列進行比較;如果它匹配,那麼我會採取值的偏移量,並將其放入另一列。將單元格與VBA中的數組進行比較

但是在數組中,我遇到「無效限定符」錯誤。我究竟做錯了什麼?

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

你不需要'ARR(N)的 「.value的」 .Value' – MiguelH

+0

有沒有'數組的.Value'財產。試試'= arr(n)' – Ambie

回答

0
PDS_NAME = arr(n).Value 

this should be changed to: 

PDS_NAME = arr(n) 
相關問題