我目前正在尝试从MS Project的导出表中输入数据。我已经在工作表1上生成了数据,我试图重现我在excel页面中创建的内容。
我处于早期阶段,我已经编写了一些代码。我查了一下错误,我看不出哪里出错了。首先,我只想将数据的子部分输入到数组中,以便稍后对其进行操作。
调试突出显示以下行:
如果是工作表(“Sheet1”)。单元格(i,9).Value =工作表(“Sheet2”)。单元格(j,1).Value则
我是一名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
答案 0 :(得分:1)
这是否有效:
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
),无需说“执行此操作,并做到这一点,并做到这一点......“,这只是”做这个,这个,这个,这个“。
答案 1 :(得分:0)
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代码。你也忘了关闭你的IF语句,并且不需要AND语句,它只是在那之后执行所有代码直到它命中并且END IF