库管易

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

查看: 35856|回复: 4

Excel表格,怎样用VBA实现,根据登录账号显示指定工作表?

[复制链接]
一个Excel表格,这个界面是admin用户登陆的,让admin用户登陆能见所有工作表。
然后让下面其它的两个用户登陆只能见某个工作表,用VBA怎么设置与实现呢?
我自己试了Visible,发现会影响到别的用户显示,能固定住吗?

TIM截图20191217202229.png
回复

使用道具 举报

使用VBA编程是可以实现的,大概的制作思路如下:
1、添加一个代码模块,并编写一个公用过程,用于隐藏所有工作表。
  1. Sub hideSheets()
  2.     On Error Resume Next
  3.     Application.ScreenUpdating = False
  4.    
  5.     Dim indexName As String '定义一个默认显示的主界面
  6.     indexName = "主界面"
  7.     ThisWorkbook.Sheets(indexName).Visible = xlSheetVisible
  8.    
  9.     Dim temSheet As Worksheet
  10.     For Each temSheet In ThisWorkbook.Worksheets
  11.         If temSheet.Name <> indexName Then
  12.             temSheet.Visible = xlSheetVeryHidden
  13.         End If
  14.     Next
  15.     Set temSheet = Nothing
  16.    
  17.     ThisWorkbook.Sheets(indexName).Select
  18.     Application.ScreenUpdating = True
  19. End Sub
复制代码

2、在“工作薄打开、工作薄关闭”两个事件中,调用隐藏工作表的过程。
  1. Private Sub Workbook_Open()
  2.     Call hideSheets
  3. End Sub

  4. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  5.     Call hideSheets
  6. End Sub
复制代码

3、制作登录窗体与相关过程,根据登录成功的账号显示指定工作表。
此处代码,根据自己的需求编写,其中显示工作表的代码像这样:
  1. ThisWorkbook.Sheets("要显示的工作表名称").Visible = xlSheetVisible
复制代码

评分

参与人数 1金钱 +5 贡献 +1 收起 理由
刘朝富 + 5 + 1 感谢您帮助库友解决问题

查看全部评分

回复 支持 反对

使用道具 举报

个人建议搞个数据库,然后VBA连接数据库,这样比较好控制权限。
回复 支持 反对

使用道具 举报

alxzoom 发表于 2019-12-19 13:05
个人建议搞个数据库,然后VBA连接数据库,这样比较好控制权限。

这个思路好
可以结合视图来做、蛮方便的
回复 支持 反对

使用道具 举报

来自手机 显示全部楼层
花生壳 发表于 2019-12-18 10:57
使用VBA编程是可以实现的,大概的制作思路如下:
1、添加一个代码模块,并编写一个公用过程,用于隐藏所有 ...

摩拜大神了,收藏代码测试了,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|仓库管理网

GMT+8, 2024-9-29 00:22

Powered by 库管易

KuGuanYi.Com

快速回复 返回顶部 返回列表