Excel vba:Do循环中的数组不工作
我正在尝试创建一个包含项目编号的数组。下面的代码循环浏览国家/地区内的计划列表(在“计划内容审查”选项卡中)。对于每个程序,它切换到一个带有项目列表(项目摘要统计信息)的选项卡,我希望它创建一个带有项目编号的数组,以便在单独的代码中调用它。下面的代码正确地标识了activeprogramnum,但却吐出了各种奇怪的项目编号。救命啊Excel vba:Do循环中的数组不工作,excel,vba,Excel,Vba,我正在尝试创建一个包含项目编号的数组。下面的代码循环浏览国家/地区内的计划列表(在“计划内容审查”选项卡中)。对于每个程序,它切换到一个带有项目列表(项目摘要统计信息)的选项卡,我希望它创建一个带有项目编号的数组,以便在单独的代码中调用它。下面的代码正确地标识了activeprogramnum,但却吐出了各种奇怪的项目编号。救命啊 Sub test_array() Dim ActiveProgramNum Sheets("ProgramContentReview").Select Range("
Sub test_array()
Dim ActiveProgramNum
Sheets("ProgramContentReview").Select
Range("b2").Select ' country
Do Until IsEmpty(ActiveCell)
Dim ProjectNumArray(10)
Dim l
l = 0
If (Sheets("Introduction").Range("A15").Value & " ") = ActiveCell.Value Then ' This identifies the country
ActiveProgramNum = ActiveCell.Offset(0, 2)
Sheets("ProjectSummaryStats").Select
' Select cell A2, *first line of data*.
Range("D2").Select
Do Until IsEmpty(ActiveCell) ' loop through projects (at program level)
If ActiveProgramNum = ActiveCell.Value Then
ProjectNumArray(l) = ActiveCell.Offset(0, 2).Value ' this is the column with the project numbers
l = l + 1
MsgBox (ActiveProgramNum)
MsgBox (ProjectNumArray(l))
End If
ActiveCell.Offset(1, 0).Select
Loop
End If
Sheets("ProgramContentReview").Select
ActiveCell.Offset(1, 0).Select
Loop
End Sub
下面的代码有效!!!!我只包括了关键的变化
Dim ProjectNumArray() As String
Dim l As Integer
l = 0
'If (Sheets("Introduction")...
'If ActiveProgramNum = ...
l = l + 1
ReDim ProjectNumArray(1 To l)
ProjectNumArray(l) = ActiveCell.Offset(0, 5).Value
'Rest is the same
直到ActiveCell.Value=”“我这样做了,它没有改变任何东西。我相信do循环工作正常,因为我在代码的其他地方使用了它……我怀疑这是一个
活动的
单元问题。我建议您遵循下面的操作,并删除所有活动的&选择语句。