gpt4 book ai didi

excel - 使用 VBA 宏继续遇到运行时错误 '5'

转载 作者:行者123 更新时间:2023-12-04 22:13:45 27 4
gpt4 key购买 nike

几年前,我在 Excel 中使用 Freeforms 构建了一个交互式热图,形成了该国所有地区的完整 map 。
每个区域都有一个特定的 KPI 百分比,然后通过 VBA 宏为自由形状着色。
但是,我现在继续在运行时错误“5”中运行:无效的过程调用或参数,并且我在代码中找不到错误。
有人看到我看不到的吗?

Sub HEATMAP()

For i = 1 To 139

a = Sheet3.Cells((1 + i), 6)
b = Sheet3.Cells((1 + i), 5) * 28 - 28
c = Sheet3.Cells((1 + i), 5) * 28 - 9
d = 89 - Sheet3.Cells((1 + i), 5) * 9 - 9

Sheet2.Shapes.Range(Array("Freeform " & a)).Line.ForeColor.RGB = RGB(80, 80, 80)
Sheet2.Shapes.Range(Array("Freeform " & a)).Fill.ForeColor.RGB = RGB(b, c, d) "<- this line produces the error"

Next i

ActiveWorkbook.RefreshAll

End Sub
表 3 包含所有区域的列表,其中包含每个区域对象的自由格式名称及其 KPI 百分比,带回 10 个类别(每个 10% 括号一个),应该返回特定颜色。
此颜色应使用 VBA 中的值 b、c 和 d 计算。 (从最低括号:黄色到最高括号:绿色)
  • 工作表包含一个标题。
  • 第 5 列有颜色括号(编号为 10 - 1,其中 10 为最差括号 [0-10%],1 为最佳括号 [90-100%])
  • 第 6 列有对象的自由形式编号,创建 map 。
  • 共有 139 个区域(因此是自由形式)

  • 工作表 2 包含带有触发此 VBA 的按钮的 map ,因此用户可以根据 KPI 值使用它“为 map 着色”。
    我一直想念什么?
    提前致谢!

    最佳答案

    正如大笨钟所说,当错误发生时,b、c 和 d 是什么?
    可能想用一个

    On Error GoTo ErrorHandler1 
    Sheet2.Shapes.Range(Array("Freeform " & a)).Fill.ForeColor.RGB = RGB(b, c, d) '<- this line produces the error
    dummy = 1 'Just a dummy line so you can resume out of the error and see what inputs produced the invalid input val
    Exit Sub

    ErrorHandler1:
    stophere = 1 (and put a breakpoint on this line)
    Resume Next
    这是在迭代中进入代码的一种略显丑陋的方式,它分崩离析,让您四处寻找无效值及其来源。

    关于excel - 使用 VBA 宏继续遇到运行时错误 '5',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71297174/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com