Arrays PowerPoint VBA-用于循环和数组

Arrays PowerPoint VBA-用于循环和数组,arrays,vba,for-loop,Arrays,Vba,For Loop,我试图用数组复制下面的代码,以避免代码重复6次。 代码根据1的值为两个框着色,在本例中,TueCum和TuePer-我还有WedCum、WedPer等 If Val(TueCum) >= Val(ProdTarg) * ((2 * Sixth) + SixthLim) Then TueCum.BackColor = &HFF00& TuePer.BackColor = &HFF00& ElseIf Val(TueCum) < V

我试图用数组复制下面的代码,以避免代码重复6次。 代码根据1的值为两个框着色,在本例中,TueCum和TuePer-我还有WedCum、WedPer等

If Val(TueCum) >= Val(ProdTarg) * ((2 * Sixth) + SixthLim) Then
    TueCum.BackColor = &HFF00&
    TuePer.BackColor = &HFF00&
    ElseIf Val(TueCum) < Val(ProdTarg) * ((2 * Sixth) - SixthLim) Then
    TueCum.BackColor = &HFF&
    TuePer.BackColor = &HFF&
    Else
    TueCum.BackColor = &H80FF&
    TuePer.BackColor = &H80FF&
End If
如果Val(TueCum)>=Val(ProdTarg)*((2*Sixth)+SixthLim),则
TueCum.BackColor=&HFF00&
TuePer.BackColor=&HFF00&
如果是,那么
TueCum.BackColor=&HFF&
TuePer.BackColor=&HFF&
其他的
TueCum.BackColor=&H80FF&
TuePer.BackColor=&H80FF&
如果结束
我已经走了这么远

Dim Cum(0 To 5)
Dim CDay As Variant
Count = 1

Set Cum(0) = MonCum
Set Cum(1) = TueCum
Set Cum(2) = WedCum
Set Cum(3) = ThuCum
Set Cum(4) = FriCum
Set Cum(5) = SatCum

For Each CDay In Cum
    If Val(CDay) >= Val(ProdTarg) * ((Count * Sixth) + SixthLim) Then
        CDay.BackColor = &HFF00&
        TuePer.BackColor = &HFF00&
        ElseIf Val(CDay) < Val(ProdTarg) * ((Count * Sixth) - SixthLim) Then
        CDay.BackColor = &HFF&
        TuePer.BackColor = &HFF&
        Else
        CDay.BackColor = &H80FF&
        TuePer.BackColor = &H80FF&
    End If
Count = Count + 1
Next CDay
Dim Cum(0到5)
Dim CDay作为变体
计数=1
集Cum(0)=一次
集立方米(1)=TueCum
集合总和(2)=WedCum
集Cum(3)=ThuCum
集合数量(4)=少量
设定量(5)=饱和量
以立方米计算的每一天
如果Val(CDay)>=Val(ProdTarg)*((计数*第六次)+第六次),则
CDay.BackColor=&HFF00&
TuePer.BackColor=&HFF00&
艾尔塞夫·瓦尔(CDay)<瓦尔(ProdTarg)*((计数*第六次)-第六次)然后
CDay.BackColor=&HFF&
TuePer.BackColor=&HFF&
其他的
CDay.BackColor=&H80FF&
TuePer.BackColor=&H80FF&
如果结束
计数=计数+1
下一天
但我似乎无法让它同时格式化两个文本框,我已经尝试使用第二个数组,但无法正确设置。 因此,我需要在计算TuePer时将其设置为颜色TuePer和TueCum,在计算WedPer时将其设置为颜色WedPer和WedCum,等等。

这应该可以:

Dim Cum(1 To 6)
Dim Per(1 To 6)
Dim Count as Integer

Set Cum(1) = MonCum
Set Per(1) = MonPer
Set Cum(2) = TueCum
Set Per(2) = TuePer
Set Cum(3) = WedCum
Set Per(3) = WedPer
Set Cum(4) = ThuCum
Set Per(4) = ThuPer
Set Cum(5) = FriCum
Set Per(5) = FriPer
Set Cum(6) = SatCum
Set Per(6) = SatPer

For Count = 1 To 6
    If Val(Cum(Count)) >= Val(ProdTarg) * ((Count * Sixth) + SixthLim) Then
        Cum(Count).BackColor = &HFF00&
        Per(Count).BackColor = &HFF00&
    ElseIf Val(Cum(Count)) < Val(ProdTarg) * ((Count * Sixth) - SixthLim) Then
        Cum(Count).BackColor = &HFF&
        Per(Count).BackColor = &HFF&
    Else
        Cum(Count).BackColor = &H80FF&
        Per(Count).BackColor = &H80FF&
    End If
Next Count
Dim Cum(1到6)
尺寸Per(1至6)
将计数设置为整数
集合数量(1)=一次
设置为每(1)=MonPer
集立方米(2)=TueCum
每(2)组=TuePer
集合总和(3)=WedCum
设置每(3)=线切割
集Cum(4)=ThuCum
设置每(4)=ThuPer
集合数量(5)=少量
设置每(5)=FriPer
设定量(6)=饱和量
设置每(6)=SatPer
对于计数=1到6
如果Val(Cum(Count))>=Val(ProdTarg)*((Count*Sixth)+SixthLim),则
Cum(计数)。背景色=&HFF00&
Per(计数)。背景色=&HFF00&
艾尔塞夫·瓦尔(Cum(Count))
Hi@d-stroyer,谢谢!太好了,我必须做一个小小的改变,那就是
如果Val(Cum(Count))>=Val(ProdTarg)
再次感谢您的帮助!