【发布时间】:2017-06-04 06:10:00
【问题描述】:
作为较长代码的一部分,我试图根据二维字母分配数组为每一行分配特定的员工姓名。 LastRow 已被声明并正确拾取,但无论如何循环在 27 次循环后仍会停止。如何纠正这种情况以继续到 LastRow?这是我第一次使用多维数组,所以我非常感谢任何帮助。
Private Sub Assignments()
Dim Alpha As Variant, Staff As Variant
Dim i As Integer
Dim LastRow As Long
Dim alpha_Assignment(1 To 26, 1 To 2) As Variant
'define last row
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
'set alpha column to array and set staff to array
Alpha = Range("AB2:AB" & LastRow).Value
Staff = Range("AC2:AC" & LastRow).Value
'Array Values to Alpha and Assigned staff
alpha_Assignment(1, 1) = "A"
alpha_Assignment(1, 2) = "Staff 1"
alpha_Assignment(2, 1) = "B"
alpha_Assignment(2, 2) = "Staff 2"
alpha_Assignment(3, 1) = "C"
alpha_Assignment(3, 2) = "Staff 3"
'and so on for all 26 letters in alphabet then loop statement and paste into worksheet.
For i = 1 To UBound(alpha_Assignment)
If Alpha(i, 1) = alpha_Assignment(i, 1) Then
Staff(i, 1) = alpha_Assignment(i, 2)
ElseIf Alpha(i, 1) <> alpha_Assignment(i, 1) Then
Staff(i, 1) = "Staff 1"
End If
Next i
Range("AC2").Resize(UBound(Staff, 1), 1).Value = Staff
End Sub
【问题讨论】:
标签: arrays excel vba loops multidimensional-array