VBAarrays问题

我目前正在尝试从MS Project的输出表中input数据。 我已经在worksheet1上生成了这些数据,并且试图重现我在excel页面中创build的内容。

我处于早期阶段,我写了一些代码。 我抬头看了一下错误,我看不出错在哪里。 首先,我只想input数据的一个子部分到一个数组中,以便稍后操作。

debugging突出显示以下行:

如果Worksheets(“Sheet1”)。Cells(i,9).Value = Worksheets(“Sheet2”)。Cells(j,1).Value Then

我是一个C ++程序员,所以我认为我的数组操作是可以的,但是这是我在VBA上的第二天,所以对我来说很简单!

代码如下:

Private Sub CommandButton1_Click() Dim i As Integer Dim j As Integer Dim Arr(2, 11) As Variant j = 5 For i = 1 To 10 If Worksheets("Sheet1").Cells(i, 9).Value = Worksheets("Sheet2").Cells(j, 1).Value Then Arr(0, i) = Worksheets("Sheet1").Cells(i, 4).Value And Arr(1, i) = Worksheets("Sheet1").Cells(i, 6).Value And Arr(2, i) = Worksheets("Sheet1").Cells(i, 7).Value Next i MsgBox ("Value in Array index 2,2 : " & Arr(2, 2)) End Sub 

这是否工作:

 Private Sub CommandButton1_Click() Dim i As Integer Dim j As Integer Dim Arr(2, 11) As Variant j = 5 For i = 1 To 10 If Worksheets("Sheet1").Cells(i, 9).Value = Worksheets("Sheet2").Cells(j, 1).Value Then Arr(0, i) = Worksheets("Sheet1").Cells(i, 4).Value Arr(1, i) = Worksheets("Sheet1").Cells(i, 6).Value Arr(2, i) = Worksheets("Sheet1").Cells(i, 7).Value End If Next i MsgBox ("Value in Array index 2,2 : " & Arr(2, 2)) End Sub 

声明为真时,“IF”声明不需要那些“AND”。 这可能是其中一个问题。 在VB中(不太确定C ++),当你的IF语句为TRUE时,所有的Then语句都会发生,直到End If (或者ElseIf ),不需要说“做到这一点,做到这一点,并做到这一点…” ,这只是“做这个,这个,这个,这个”。

 If ThisWorkbook.Worksheets("Sheet1").Cells(i, 9).Value = ThisWorkbook.Worksheets("Sheet2").Cells(j, 1).Value Then Arr(0, i) = Worksheets("Sheet1").Cells(i, 4).Value Arr(1, i) = Worksheets("Sheet1").Cells(i, 6).Value Arr(2, i) = Worksheets("Sheet1").Cells(i, 7).Value End If 

用这个代替长的IF代码。 你也忘了closures你的IF语句,AND语句不需要,它只是执行THEN之后的所有代码,直到碰到END IF