【发布时间】:2017-03-28 01:01:21
【问题描述】:
我有一个工作簿,其中包含许多工作表,每个工作表上都有一个合作者姓名(Windows 登录用户名)。
我尝试通过 VBA 循环遍历所有工作表,以匹配实际的 Windows 登录用户名与匹配的工作表,匹配完成后,只有该工作表保持可见(所有其他工作表都被隐藏)。
我已经部分做到了这一点,但我只能在找到匹配的工作表之前做到这一点。例如,如果匹配的用户名是第三个工作表(例如总共十个),则代码会停在那里。我希望它遍历所有工作表,然后才隐藏不匹配的工作表。
首先我有以下模块:
Sub WorksheetFilter()
Dim Username As String
Dim Worksheetname As String
Worksheetname = ActiveWorkbook.ActiveSheet.Name
Username = Environ("Username")
If Worksheetname <> Username Then
ActiveSheet.Visible = False
End If
End Sub
然后,我在 Workbook_Open() 事件上调用上一个模块:
Option Explicit
Dim WS As Worksheet
Private Sub Workbook_Open()
For Each WS In ActiveWorkbook.Worksheets
WorksheetFilter
Next
End Sub
关于如何实现这一点的任何提示?
谢谢, 维托
【问题讨论】:
-
您的代码是否链接到特定工作表?