使用带有筛选列表的values属性时出现问题

时间:2013-11-18 22:51:53

标签: excel vba excel-vba

我遇到的东西我猜是Excel中的一个讨厌的错误,但不确定。

奇怪的是,尽管在VBA for Excel中开发了10年,但我以前从未见过这个。在Excel 2010和2013中用于PC的工作方式相同。

如何重现:

  1. 新工作簿。
  2. 在单元格a1:f1
  3. 中添加几个列标题(第1-6列)
  4. 在单元格a2中的第一列(“A”或“B”)中添加一些值(至少2个不同的值):a8
  5. 在第1行添加过滤器,然后从Col A
  6. 中的过滤器中选择一个项目
  7. 隐藏列C
  8. 运行以下宏:

    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
    
  9. 现在发生的事情如下,取决于i的值。

    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至少似乎在第一个隐藏列之后重复第一个值。 对于i = 2,我不知道它在做什么。

    从我的观点来看,这看起来非常 错误。

0 个答案:

没有答案