2014-12-06 166 views
-2

我有VBA一個編譯錯誤,但我不明白問題出在哪裏: 這裏是我的代碼:Sub或功能沒有定義VBA

Sub etat() 
Dim i As Single 
Set plage = Range("D2:A24") 
Dim etat As String 

For i = 2 To 23 'début de la boucle 
    If (Sheet("Voitures").Cell(i, D).Value < 2002) Then 
     Sheet("Voitures").Cell(i, H).Value = "TRY" 
    End If 
Next i 

End Sub 

的錯誤是Sub或功能沒有界定

+4

修改後的代碼 使用'Sheets'和'Cells'初始化初始化,不是'Sheet'和'Cell'。 – GSerg 2014-12-06 14:59:23

回答

2

這裏低於

Sub etat() 
Dim i As Single 
Set plage = Range("D2:A24") 
Dim etat As String 

' d and h are columns 
Dim d As Integer 
Dim h As Integer 
d = 4 
h = 6 

For i = 2 To 23 'début de la boucle 
    If (Sheets("Voitures").Cells(i, d).Value < 2002) Then 
     Sheets("Voitures").Cells(i, h).Value = "TRY" 
    End If 
Next i 

End Sub 
+0

非常感謝你對這個愚蠢的問題抱歉。 – Tuytuy 2014-12-06 15:19:41

0

If (Sheet ..應If (Sheets ..複數

CellCells ..複數

可變d需要聲明和一個值

變量H需要聲明和一個值

+0

D和H假設是列,我從來沒有使用vba之前,所以我不知道如何聲明列 – Tuytuy 2014-12-06 15:04:40

+0

你用Dim,變量名稱和數據類型例如聲明變量。 Dim H as Long然後在一個新行上H = 2 - 就像你對變量i所做的那樣。 – barryleajo 2014-12-06 15:07:19