2013-07-30 30 views
0

我創建了一個數組並給出了tems 1到12的值。我這樣做是爲了稍後循環遍歷每個名​​稱的一部分代碼。由於某種原因,我在我的第一個數組填充行遇到錯誤:「Object required」。有任何想法嗎?而且這段代碼的其餘部分也有意義嗎?在代碼中給出數組值

   Dim sArray() As String 
       Dim row As Long 
       Dim i As Long 
       Dim arrTot() As Long 
       Dim arrLate() As Long 

      'Error here 
       Set sArray(1) = "AAA CANADA INC." 
       Set sArray(2) = "AEROTEK ULC" 
       Set sArray(3) = "AKKA GROUPE AMERIQUE DU NORD INC." 
       Set sArray(4) = "ALTITUDE AEROSPACE INC." 
       Set sArray(5) = "ASSYSTEM CANADA" 
       Set sArray(6) = "BERLETEX AERO DESIGN" 
       Set sArray(7) = "MSB DESIGN INC." 
       Set sArray(8) = "NORAMTEC CONSULTANTS INC." 
       Set sArray(9) = "SATYAM COMPUTER SERVICES LTD." 
       Set sArray(10) = "T.E.S. CONTRACT SERVICES INC." 
       Set sArray(11) = "TATA CONSULTANCY SERVICES CANADA IN" 
       Set sArray(12) = "TDM TECHNICAL SERVICES" 

       Set vendor = Range("P2:P" & lr) 
       row = 1 
       For Each cell In invoicedates 
        For i = 1 To 12 
         If tbl1(row, 16) = sArray(i) Then 
          arrTot(i) = arrTot(i) + 1 
          duedate = cell.Value + 60 
          If Date > duedate Then 
           arrLate(i) = arrLate(i) + 1 
          End If 
         End If 
        Next 
        row = row + 1 
       Next 
+4

由於錯誤提示'Set'用於設置對象的引用,而不是用於賦值。刪除'Set's。您還必須在使用或超出範圍錯誤之前對陣列進行尺寸標註。 –

+1

您delcare數組,但從未設置其大小使用redim功能來調整您的數組大小。 ReDim sArray(12)。另請注意,除非您在模塊中聲明選項1,否則所有數組索引的起始位置爲0 – Sorceri

+2

將數組定義爲Dim sArray(1至12)As String'並在爲其分配值時移除Set。 – Santosh

回答

1

兩件事情:首先,你需要你的REDIM數組:

ReDim sArray(1 To 12) 

此外,沒有分配值陣列之前「設置」。