gpt4 book ai didi

vba - 如何避免转到VBA?

转载 作者:行者123 更新时间:2023-12-02 16:05:56 25 4
gpt4 key购买 nike

我多次读到在代码中应该避免 GoTo,但是我经常必须创建循环,如果某个项目给我一个错误,代码就会停止。

在下面的情况下,我必须比较单元格值,但如果单元格中有字符串,我会收到错误。

您还有其他选择来避免以下代码的 GoTo 吗?

谢谢!

Sub Conditional()

Dim x As Integer



For x = 1 To 31



On Error GoTo na


If Sheets("Sheet1").Cells(8 + x, 5) >= 0.95 Then

Sheets("Sheet2").Shapes("Shape " & x).Fill.ForeColor.RGB = RGB(0, 176, 80)

ElseIf Sheets("Sheet1").Cells(8 + x, 5) < 0.95 Then

Sheets("Sheet2").Shapes("Shape " & x).Fill.ForeColor.RGB = RGB(255, 0, 0)

End If

GoTo nextx

na:

Sheets("Sheet2").Shapes("Shape " & x).Fill.ForeColor.RGB = RGB(0, 0, 0)
On Error GoTo -1

nextx:
Next x

End Sub

最佳答案

在这种情况下,如果您想检查单元格中的字符串,则如下所示:

Sub Conditional()

Dim x As Long

For x = 1 To 31
If IsNumeric(Sheets("Sheets1").Cells(8 + x, 5)) Then
If Sheets("Sheet1").Cells(8 + x, 5) >= 0.95 Then

Sheets("Sheet2").Shapes("Shape " & x).Fill.ForeColor.RGB = RGB(0, 176, 80)

ElseIf Sheets("Sheet1").Cells(8 + x, 5) < 0.95 Then

Sheets("Sheet2").Shapes("Shape " & x).Fill.ForeColor.RGB = RGB(255, 0, 0)

End If
End If
Next x
End Sub

一般来说,goto 应该仅用于错误捕获,例如没有异常(exception)的On Error GoTo ErrorHandler

关于vba - 如何避免转到VBA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41218231/

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