在使用过滤列表的值属性时出现错误

我碰到的东西我猜是在Excel中讨厌的错误,但不知道。

奇怪的是,我从来没有见过这个,尽pipe10年来发展在Excel的VBA。 用于PC的Excel 2010和2013的工作方式相同。

如何重现:

  1. 新的工作簿。
  2. 在单元格a1:f1中添加几个列标题(列1-6)
  3. 在单元格a2:a8的第一列(“A”或“B”)中添加几个值(至less2个不同的值)
  4. 添加一个filter到第1行,并从列A中的filter中select一个项目
  5. 隐藏栏C
  6. 运行下面的macros:

    Public Sub test() Dim rng As Range Dim v As Variant Dim i As Long i = 1 ReDim v(1 To i, 1 To 6) v(1, 1) = "x" v(1, 2) = "x1" v(1, 3) = "x2" v(1, 4) = "x3" v(1, 5) = "x4" v(1, 6) = "x5" Set rng = Sheet1.Range("A9:F9") If i = 2 Then v(2, 1) = "y" v(2, 2) = "y1" v(2, 3) = "y2" v(2, 4) = "y3" v(2, 5) = "y4" v(2, 6) = "y5" Set rng = Sheet1.Range("A9:F10") End If rng.Value = v End Sub 

现在发生的是以下,取决于我的价值。

I = 1:

 A9="x" B9="x1" C9=unchanged D9:F9="x" 

I = 2:

 A9="x" B9="x1" C9=unchanged D9="x" E9="x3" F9="#VALUE" 

(第10行与9相似,但用“y”代替)

i = 1似乎至less在第一个隐藏的列之后重复第一个值。 对于我= 2,我不知道它在做什么。

从我的angular度来看,这看起来令人难以置信的错误。