Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9251|回复: 18

[已解决]工作表全部运行同一个宏

[复制链接]
发表于 2013-3-20 15:16 | 显示全部楼层 |阅读模式
Sub 隐藏()Dim Rng As Range
Dim a As Date
Dim b As Date
Dim c As Date
Dim d As Date
Dim e As Date
Dim f As Date
Dim g As Date
Dim h As Date
Dim i As Date
Dim j As Date
Dim k As Date
Dim l As Date, m As Integer, n As Integer, o As Integer, p As Integer, q As Integer
a = "2013-1-10 00:00"
b = "2013-2-10 00:00"
c = "2013-3-10 00:00"
d = "2013-4-10 00:00"
e = "2013-5-10 00:00"
f = "2013-6-10 00:00"
g = "2013-7-10 00:00"
h = "2013-8-10 00:00"
i = "2013-9-10 00:00"
j = "2013-10-10 00:00"
k = "2013-11-10 00:00"
l = "2013-12-10 00:00"
    m = Year(dd)
    n = Month(dd)
    o = Day(dd)
    p = Hour(dd)
    q = Minute(dd)
For Each Rng In Range("a:a")
       If Rng = a or Rng =b or Rng =c or Rng =d or Rng =e or Rng =f or Rng =g or Rng =h or Rng =i or Rng =j or Rng =k or Rng =l Then
    Rows(Rng.Row).EntireRow.Hidden = True
End If
Next End Sub
这段代码是隐藏工作表里特定行的代码,我想让每个工作表都运行这个宏,请问在哪里加什么代码能实现呀。
最佳答案
2013-3-20 15:51
  1. Sub 隐藏()

  2.     Dim Rng As Range
  3.     Dim a As Date
  4.     Dim b As Date
  5.     Dim c As Date
  6.     Dim d As Date
  7.     Dim e As Date
  8.     Dim f As Date
  9.     Dim g As Date
  10.     Dim h As Date
  11.     Dim i As Date
  12.     Dim j As Date
  13.     Dim k As Date
  14.     Dim l As Date, m As Integer, n As Integer, o As Integer, p As Integer, q As Integer
  15.     Dim sht As Worksheet

  16.     a = "2013-1-10 00:00"
  17.     b = "2013-2-10 00:00"
  18.     c = "2013-3-10 00:00"
  19.     d = "2013-4-10 00:00"
  20.     e = "2013-5-10 00:00"
  21.     f = "2013-6-10 00:00"
  22.     g = "2013-7-10 00:00"
  23.     h = "2013-8-10 00:00"
  24.     i = "2013-9-10 00:00"
  25.     j = "2013-10-10 00:00"
  26.     k = "2013-11-10 00:00"
  27.     l = "2013-12-10 00:00"


  28.     m = Year(dd)
  29.     n = Month(dd)
  30.     o = Day(dd)
  31.     p = Hour(dd)
  32.     q = Minute(dd)

  33.     For Each sht In Worksheets
  34.         With sht
  35.             For Each Rng In .Range("a:a")
  36.                 If Rng = a Or Rng = b Or Rng = c Or Rng = d Or Rng = e Or Rng = f Or Rng = g Or Rng = h Or Rng = i Or Rng = j Or Rng = k Or Rng = l Then
  37.                     .Rows(Rng.Row).EntireRow.Hidden = True
  38.                 End If
  39.             Next
  40.         End With
  41.     Next
  42. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-3-20 15:24 | 显示全部楼层
放在 ThisWorkbook 里看一下(看一下是什么事件)
回复

使用道具 举报

发表于 2013-3-20 15:26 | 显示全部楼层
在THISWORKBOOK里OPEN事件里循环工作表调用这段代码就成了。
小改动。
回复

使用道具 举报

 楼主| 发表于 2013-3-20 15:33 | 显示全部楼层
E路人 发表于 2013-3-20 15:24
放在 ThisWorkbook 里看一下(看一下是什么事件)

放在ThisWorkbook 里看过了,只是把当前的工作表执行了这个宏,其他工作表没有反应
回复

使用道具 举报

 楼主| 发表于 2013-3-20 15:34 | 显示全部楼层
hwc2ycy 发表于 2013-3-20 15:26
在THISWORKBOOK里OPEN事件里循环工作表调用这段代码就成了。
小改动。

放在ThisWorkbook 里看过了,只是把当前的工作表执行了这个宏,其他工作表没有反应
回复

使用道具 举报

发表于 2013-3-20 15:36 | 显示全部楼层
jzzhmm425 发表于 2013-3-20 15:34
放在ThisWorkbook 里看过了,只是把当前的工作表执行了这个宏,其他工作表没有反应

dd是哪来的?未定义啊。
回复

使用道具 举报

发表于 2013-3-20 15:38 | 显示全部楼层
jzzhmm425 发表于 2013-3-20 15:33
放在ThisWorkbook 里看过了,只是把当前的工作表执行了这个宏,其他工作表没有反应

加个循环  
for 工作表从1到工作表最后一张
回复

使用道具 举报

发表于 2013-3-20 15:38 | 显示全部楼层
  1. Sub 隐藏()

  2.     Dim Rng As Range
  3.     Dim a As Date
  4.     Dim b As Date
  5.     Dim c As Date
  6.     Dim d As Date
  7.     Dim e As Date
  8.     Dim f As Date
  9.     Dim g As Date
  10.     Dim h As Date
  11.     Dim i As Date
  12.     Dim j As Date
  13.     Dim k As Date
  14.     Dim l As Date, m As Integer, n As Integer, o As Integer, p As Integer, q As Integer
  15.     Dim sht As Worksheet

  16.     a = "2013-1-10 00:00"
  17.     b = "2013-2-10 00:00"
  18.     c = "2013-3-10 00:00"
  19.     d = "2013-4-10 00:00"
  20.     e = "2013-5-10 00:00"
  21.     f = "2013-6-10 00:00"
  22.     g = "2013-7-10 00:00"
  23.     h = "2013-8-10 00:00"
  24.     i = "2013-9-10 00:00"
  25.     j = "2013-10-10 00:00"
  26.     k = "2013-11-10 00:00"
  27.     l = "2013-12-10 00:00"


  28.     m = Year(dd)
  29.     n = Month(dd)
  30.     o = Day(dd)
  31.     p = Hour(dd)
  32.     q = Minute(dd)
  33.    
  34.     For Each sht In Worksheets
  35.         For Each Rng In .Range("a:a")
  36.             If Rng = a Or Rng = b Or Rng = c Or Rng = d Or Rng = e Or Rng = f Or Rng = g Or Rng = h Or Rng = i Or Rng = j Or Rng = k Or Rng = l Then
  37.                 .Rows(Rng.Row).EntireRow.Hidden = True
  38.             End If
  39.         Next
  40.     Next
  41. End Sub
复制代码
dd的问题你自己改下就成了,代码运行后,所有的工作表都会处理一次。
回复

使用道具 举报

 楼主| 发表于 2013-3-20 15:40 | 显示全部楼层
hwc2ycy 发表于 2013-3-20 15:36
dd是哪来的?未定义啊。

我说不上来,这段代码是我自己根据网上的其他代码编的,不过删除定义的m,n,o,p,q后,代码就无法执行了
回复

使用道具 举报

发表于 2013-3-20 15:40 | 显示全部楼层
上传附件,别人才好理解问题,

解决的可能性才大呀
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 15:28 , Processed in 0.258464 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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