2013-07-02 199 views
1

我想创建一个交互式PowerPoint(不是Excel,因为它需要显示)。我试图用代码做一些条件格式。 的ProdArray是PowerPoint VBA“运行时错误'13':类型不匹配”

Dim ProdArray(0 To 5) As String 
Dim Day As Variant 
ProdArray(0) = MonProd 
ProdArray(1) = TueProd 
ProdArray(2) = WedProd 
ProdArray(3) = ThuProd 
ProdArray(4) = FriProd 
ProdArray(5) = SatProd 

For Each Day In ProdArray 
    If Val(Day) >= Val(ProdTarg) * (Sixth + SixthLim) Then 
     Day.BackColor = &HFF00& 
     ElseIf Val(Day) < Val(ProdTarg) * (Sixth - SixthLim) Then 
     Day.BackColor = &HFF& 
     Else 
     Day.BackColor = &H80FF& 
    End If 
Next Day 

我有一个For Each循环,我要的颜色基于其数值相比,另一个文本框的所有文本框(ProdTarg),使编码更简洁,但我不断收到一个类型不匹配。 该如果循环内是基于以下代码:

If Val(TueProd) >= Val(ProdTarg) * (Sixth + SixthLim) Then 
    TueProd.BackColor = &HFF00& 
    ElseIf Val(TueProd) < Val(ProdTarg) * (Sixth - SixthLim) Then 
    TueProd.BackColor = &HFF& 
    Else 
    TueProd.BackColor = &H80FF& 
End If 

我希望这给你什么,我想要实现的想法。我希望我的密度不太高,但似乎无法找到一个关于如何以我需要的方式整合变量的话题。

+1

这个代码是用户窗体?什么是你的变量'Day'和'DayArray'?你如何定义它们?哪条线是你的错误? –

+0

嗨KazJAw,这个代码是为Button1_Click。我的错误来自于For循环中 - 它突出显示了'DayArray中的每一天'这一行。所以,我认为这是因为尝试使用变体的值而导致的。 – Conquistador

+0

我们不知道你的'Day'和'DayArray'是什么,因为你没有显示适当的代码部分。那么,我们怎么能帮你呢? –

回答

0

为了让你的代码工作,你需要做以下修改:

  1. 声明ProdArray为Variant这样:

    Dim ProdArray(0 To 5)

  2. 使用Set创建数组元素,如:

    Set ProdArray(0) = MonProd
    Set ProdArray(1) = TueProd
    'etc

+0

我仍然有关于“需要对象”的错误,指向“设置ProdArray(0)='部分... – Conquistador

+0

你看到改善我在3分钟前添加了哪些? –

+0

对不起,是的,我现在已将它更改为您的编辑 - 它的工作原理!非常感谢你 :) – Conquistador