0

Excel 2003 使用通常自动过滤的大工作表。但是,当自动过滤器关闭时,指标仍然存在,它们只是不起作用。不确定是否运行了一些可能导致此问题的 vba。

其他工作簿在同一台计算机上的行为正确,而此工作簿在其他计算机上的行为方式也是如此。

有没有人遇到过这个?还是更好地修复它?

我刚刚注意到过滤后的范围指示器有 45 列,最后两列标题上没有内容,尽管它实际上没有被过滤。我将内容添加到最后两个标题列并尝试运行 AutoFilteredMode=False,但没有结果,但后来 VisibleDropDown:=False 确实隐藏了指标,但仅在最后两列上。

4

2 回答 2

1

我会说这是一个未正确完成的宏遗留的问题。我会先运行这个宏,看看它是否能解决问题。

Sub TurnFilterOff()
'removes AutoFilter if one exists
  Worksheets("Data").AutoFilterMode = False
End Sub 

如果这不起作用,您可以这样做以至少隐藏指标。

Sub HideArrows() 
'hides all arrows 
Dim c As Range 
Dim i As Integer 
i = Cells(1, 1).End(xlToRight).Column 
Application.ScreenUpdating = False 

For Each c In Range(Cells(1, 1), Cells(1, i))
  c.AutoFilter Field:=c.Column, _ 
    Visibledropdown:=False 

Next 

Application.ScreenUpdating = True 
End Sub 
于 2009-11-23T17:48:23.243 回答
0

最后我发现这些残留的形状可以被移除,一旦你这样做,自动过滤器就会正确运行。之后自动过滤器将正常打开和关闭。

最初导致这些问题的原因对我来说是个谜。如果有人遇到问题,这将纠正它

Sub fixAutoFilterDisplay()
Dim drpdwn As Excel.Shape
For Each drpdwn In ActiveSheet.Shapes
  If InStr(drpdwn.Name, "Drop Down") <> 0 Then
   ' test1st = test1st & vbCrLf & drpdwn.Name  '''I tested this first
   drpdwn.Delete
 End If
 Next
   'MsgBox (test1st)
 End Sub
于 2012-03-10T23:01:41.733 回答