Excel精英培训网

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

[VBA] 五金仓库代码之生成帐目副本

[复制链接]
发表于 2013-8-4 19:19 | 显示全部楼层 |阅读模式
本帖最后由 hannanrenjie 于 2013-8-4 21:09 编辑

我的五金仓库管理系统中的代码,多数是各位高手帮忙写了自己根据实际工作表改的。少数自己录制。
写在这里供老师们提出建议,并作备忘。顺便混点学币

生成帐目副本是用于上交进出存数据报表,没有公式的。运行时如果本月的几个单价列,及本年累计入库,出库数据列没有隐藏,则需要隐藏。(复制过去也没有数据)。进出存帐目表中数据超过3000行后需要更改相应区域。

这是录制几个宏后拼凑起来的,希望老师、学长们指点优化!
优化求助1:
判断“帐目”表中G\J\M\V列(单价列),以及O到T列是否已经隐藏,如果没隐藏则隐藏。
优化求助2:
代码第三句好像是取消工作表保护,它是不用知道我的保护密码就能解除保护吗?
后面保护工作表,加上“帐目”工作表保护密码,是空密码。是哪段?
如果想将密码设为123,代码怎么完善?
  1. Sub 生成帐目副本()

  2. '副本中无单价,帐目表超过3000行时需要更改代码
  3. '
  4.     Sheets("帐目").Visible = True '显示帐目表
  5.     Sheets("帐目").Select
  6.     ActiveSheet.Unprotect '取消工作表保护
  7.     ActiveSheet.Range("$B$4:$Z$3000").AutoFilter Field:=25, Criteria1:="不隐藏" '帐目表超过3000行时需要更改代码
  8.     Range("B3:Y3000").Select
  9.     Selection.Copy
  10.     Sheets.Add After:=Sheets(Sheets.Count) '新建一个工作表
  11.     Sheets(Sheets.Count).Name = "副本" '改名副本
  12.     Range("B2").Select
  13.     Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
  14.         SkipBlanks:=False, Transpose:=False
  15.     Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
  16.         xlNone, SkipBlanks:=False, Transpose:=False
  17.     Columns("E:E").ColumnWidth = 3.38
  18.     Columns("G:G").ColumnWidth = 10
  19.     Columns("I:I").ColumnWidth = 10.38
  20.     Columns("K:K").ColumnWidth = 10.25
  21.     Columns("M:M").ColumnWidth = 10
  22.      Range("B1").Select
  23.      ActiveCell.FormulaR1C1 = "=帐目!R1C2"  'R1C2表示行号1,列号2即B列,赋予副本表标题
  24.     Sheets("帐目").Select
  25.     ActiveSheet.Range("$B$4:$Z$3000").AutoFilter Field:=25 '帐目表超过3000行时需要更改代码
  26.     ActiveWindow.SmallScroll Down:=-80
  27.     Range("A1").Select
  28.     Application.CutCopyMode = False
  29.         ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
  30.         , AllowFiltering:=True
  31.      Sheets("副本").Select
  32.    
  33. End Sub
复制代码
 楼主| 发表于 2013-8-4 19:26 | 显示全部楼层
师傅们!
ActiveSheet.Unprotect '取消工作表保护
它可以不用密码,打开工作表吗?
回复

使用道具 举报

发表于 2013-8-4 20:47 | 显示全部楼层
查找.Select
    Selection.
替换为.吧。
写代码是不会用SELECT的。
回复

使用道具 举报

 楼主| 发表于 2013-8-4 21:07 | 显示全部楼层
hwc2ycy 发表于 2013-8-4 20:47
查找.Select
    Selection.
替换为.吧。

那一句啊?我完全不懂的,录制了拼起来的,比菜鸟还菜哦!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-15 21:56 , Processed in 0.157857 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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