我认为我要做的就是创建一个包含Jan,Feb,Mar等的列表,另一个包含E和P之间的字母。但是,我在设置时仍然很糟糕向上循环,出于恐惧,我倾向于写很长的路(因为它有许多不必要的线)。有关如何设置的任何建议吗?
JanGroup = MEPF.Sheets("Group NBD-AP Goals").Range("E57").Value
FebGroup = MEPF.Sheets("Group NBD-AP Goals").Range("F57").Value
MarGroup = MEPF.Sheets("Group NBD-AP Goals").Range("G57").Value
AprGroup = MEPF.Sheets("Group NBD-AP Goals").Range("H57").Value
MayGroup = MEPF.Sheets("Group NBD-AP Goals").Range("I57").Value
JunGroup = MEPF.Sheets("Group NBD-AP Goals").Range("J57").Value
JulGroup = MEPF.Sheets("Group NBD-AP Goals").Range("K57").Value
AugGroup = MEPF.Sheets("Group NBD-AP Goals").Range("L57").Value
SepGroup = MEPF.Sheets("Group NBD-AP Goals").Range("M57").Value
OctGroup = MEPF.Sheets("Group NBD-AP Goals").Range("N57").Value
NovGroup = MEPF.Sheets("Group NBD-AP Goals").Range("O57").Value
DecGroup = MEPF.Sheets("Group NBD-AP Goals").Range("P57").Value
答案 0 :(得分:1)
如果您要使用以下代码:
Dim MthGroup As Variant
MthGroup = Application.Transpose(Application.Transpose(MEPF.Sheets("Group NBD-AP Goals").Range("E57:P57")))
然后,您可以使用MthGroup(1)
代替JanGroup
,MthGroup(2)
代替FebGroup
等来访问您的变量。
(两个Transpose
命令用于将数据从二维1 To 1, 1 To 12
数组转换为一维1 To 12
数组。)
将数据放在数组中然后允许您在代码中的其他位置使用循环,例如:
Dim mth As Long
For mth = 1 To 12
MsgBox "Data for " & MonthName(mth) & " is " & MthGroup(mth)
Next
答案 1 :(得分:1)
这是一个可能的代码,可以解决您的一些问题,并可能向您展示如何继续执行任务:
Option Explicit
Public Sub TestMe()
Dim rngCell As Range
Dim lngCounter As Long
Dim myArray(12) As Long
Set rngCell = Cells(57, 5) 'That is E57
For lngCounter = 0 To 11
Set rngCell = rngCell.Offset(0, 1)
rngCell = lngCounter
myArray(lngCounter) = rngCell.Value
Next lngCounter
For lngCounter = LBound(myArray) To UBound(myArray)
Debug.Print myArray(lngCounter)
Next lngCounter
End Sub
通常,我们将单元格(57,5)设置为rngCell
,我们将从E57到P57的所有单元格写入0到11之间的数字。因此,您可以看到如何完成此操作。此外,我们创建了一个名为myArray
的数组,其中包含12个位置。在每个循环中,我们向数组添加一个值 - myArray(lngCounter) = rngCell.Value
。我添加了第二个循环,因此您可以看到如何遍历此数组。它将数组的值打印到即时窗口。干杯!