隐藏不在CSVstring中的所有列

我有一个逗号分隔的string,对应于我希望可见的列的string。 所有其他列应该隐藏。

sub showOnly() Dim displayColumns As String Dim displayRange As Range displayColumns = "B,C,G,A,C" 'convert displayColumns to displayRange cells.EntireColumn.Hidden = True displayRange.Hidden = False end sub 

边缘情况:string可能有重复,可能不是连续的范围

你可以试试这个方法:

 Sub showOnly() Dim displayColumns As String: displayColumns = "B,C,G,A,C" Sheet2.UsedRange.Columns.Hidden = True Dim ar, col ar = Split(displayColumns, ",") For Each col In ar Sheet2.Columns(col).Hidden = False Next End Sub 

ps:没有重复或不连续或不连续列的问题。