VBA;运行时错误1004,无法定义此变量?

时间:2018-12-04 09:43:19

标签: excel vba runtime-error

我刚加入这里。由于我是使用VBA的高级编程人员,还是一般的编程人员,因此,我几乎可以找到所有东西。但是我似乎无法在这里找到我的代码的问题..所以我在excel中获得了每个月的工作表(索引4、6-16(索引5是数据页,我搞砸了,大声笑)),我想要删除每个页面上的单元格内容。我这样做来尝试:

'x is defined earlier
Dim mon As Integer
For mon = 6 To 16

    With Worksheets(mon)
        .Range("H6:I37").ClearContents
        .Range("Y6:Z37").ClearContents
        .Range("P42") = 0
    End With


   For x = 6 To 37

    If IsError(Cells(x, 16)) Then
            Cells(x, 16).ClearContents
        Else
    End If

    If IsEmpty(Cells(x, 1)) Then
            Cells(x, 16).ClearContents
        Else
    End If

Next x

Next mon

但是在:

For mon = 6 To 16

它吐出“运行时错误104”,我真的不知道为什么。

// edit1

所以我添加了一个数组:

Dim monarray
monarray = Array(Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember)

(德国月份名称)

所以..我实际上现在不知道如何使用它!我只知道这可能会更容易

//编辑2

我让数组工作了,试图弄清楚如何在我的for循环中使用数组的索引(0-11)。在这个阶段,我认为我可以自己做,如果不这样做,我会保持更新。

2 个答案:

答案 0 :(得分:0)

您确定有关工作表索引吗? 我尝试了您的代码,没有

With Worksheets(mon)
    .Range("H6:I37").ClearContents
    .Range("Y6:Z37").ClearContents
    .Range("P42") = 0
End With

而且工作正常,没有错误..

工作表索引不等于Project Explorer中单词表后的数字

答案 1 :(得分:0)

好吧,我明白了。问题是“ mon”变量,而不是变量本身,而是页面名称,因为VBA似乎失败,并带有“ä,ö,ü”(UTF.8?),我只是有一种解决方法来重命名这些字母改为“ ae,oe,ue”,则其工作正常。感谢“阵列”物件的帮助,这非常有帮助!