下标超出了VBA中If函数的范围

时间:2014-04-05 19:36:44

标签: excel vba excel-vba

我正在做一个工资单应用程序,在尝试为VBA脚本执行if函数时,我不断收到此消息。

它是If语句的第一行让我很难过。

Sub PayPeriod()
    If Sheets("sheet30").Range("e17") = "1" Then 'ERROR HERE
        Sheets("Week 1").Select
    ElseIf Sheets("sheet30").Range("e17") = "2" Then
        Sheets("Week 2").Select
    ElseIf Sheets("sheet30").Range("e17") = "3" Then
        Sheets("Week 3").Select
    ElseIf Sheets("sheet30").Range("e17") = "4" Then
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

尝试使用变量并正确声明它们。您需要限定工作表位置。在顶部声明变量,为它们分配一次所需的值,然后在代码中使用该变量。这样,如果工作表名称或单元格引用发生更改,您可以在一个位置快速调整宏。 (我已经在示例中留下了.Select语句,但请注意,您几乎不需要选择要使用它们的元素。

Option Explicit

Sub PayPeriod()

Dim ws As Worksheet
Dim rng As Range
Set ws = ThisWorkbook.Sheets("Sheet30")
Set rng = ws.Range("E17")

If rng = "1" Then
   ws.Range("Week1").Select

    [rest of your code]

End Sub