2016-02-26 96 views
1

我試圖隱藏/只名爲VPL一張取消隱藏特定的列,然後隱藏/顯示不同的一組特定的列的工作簿中剩餘的片材上的所有表取消隱藏列。隱藏及與If函數VBA

這是到目前爲止,我已經得到了代碼,但它只是工作的一個名爲VPL在紙張上,並通過在工作簿中的殘紙循環時在任何其他表沒有隱藏的列。

Sub HideAndUnHideProduct2() 

'Are you sure you want to run this macro, when you run this a box will popup and ask yes or no 
Dim varResponse As Variant 
varResponse = MsgBox("This will Hide/UnHide Product 2 on All Sheets, Do You Want To Continue", vbYesNo, "Selection") 
If varResponse <> vbYes Then Exit Sub 

Application.ScreenUpdating = False 

'Hides/UnHides Product columns on all sheets 

If VPL.Columns("L:N").Hidden = True Then 

'UnHides Specified columns On Specified Sheet 
VPL.Columns("L:N").EntireColumn.Hidden = False 'Unhides Selected Colunms 

'UnHides columns On All Sheets Except The Ones Specified Below 
Dim wsU As Worksheet 
For Each wsU In Sheets 
If wsU.Name <> "VPL" Then '<Sheets To Be Skiped From Loop 
     'Code To Be Looped below 
Columns("L:M").EntireColumn.Hidden = False 'UnHides Selected Colunms 
    'End of Code To Be Looped 
    End If 
Next wsU 

Else 

'Hides Specified columns On Specified Sheet 
VPL.Columns("L:N").EntireColumn.Hidden = True 

'Hides columns On All Sheets Except The Ones Specified Below 
Dim wsH As Worksheet 
For Each wsH In Sheets 
If wsH.Name <> "VPL" Then '<Sheets To Be Skiped From Loop 
     'Code To Be Looped below 
Columns("L:M").EntireColumn.Hidden = True 'Hides Selected columns 
    'End of Code To Be Looped 
    End If 
Next wsH 
End If 
Application.ScreenUpdating = True 

End Sub 

任何幫助是極大的讚賞,因爲我不是在VBA

+2

資格的列。 – findwindow

+2

我相信你需要'wsU.Columns( 「L:M」)EnterColumn.Hidden = FALSE'等用'wsH'。 –

回答

1

很好沒有頁面引用,你的代碼

Columns("L:M").EnterColumn.Hidden = False 

將僅指活動工作表。既然你是通過多張工作表循環,您需要引用表變量在for循環,像這樣

wsU.Colunns("L:M").EnterColumn.Hidden = False 

同樣,對於

wsH.Columns("L:M").EntireColumn.Hidden = True