|
本帖最后由 hannanrenjie 于 2013-8-4 21:09 编辑
我的五金仓库管理系统中的代码,多数是各位高手帮忙写了自己根据实际工作表改的。少数自己录制。
写在这里供老师们提出建议,并作备忘。顺便混点学币
生成帐目副本是用于上交进出存数据报表,没有公式的。运行时如果本月的几个单价列,及本年累计入库,出库数据列没有隐藏,则需要隐藏。(复制过去也没有数据)。进出存帐目表中数据超过3000行后需要更改相应区域。
这是录制几个宏后拼凑起来的,希望老师、学长们指点优化!
优化求助1:
判断“帐目”表中G\J\M\V列(单价列),以及O到T列是否已经隐藏,如果没隐藏则隐藏。
优化求助2:
代码第三句好像是取消工作表保护,它是不用知道我的保护密码就能解除保护吗?
后面保护工作表,加上“帐目”工作表保护密码,是空密码。是哪段?
如果想将密码设为123,代码怎么完善?- Sub 生成帐目副本()
- '副本中无单价,帐目表超过3000行时需要更改代码
- '
- Sheets("帐目").Visible = True '显示帐目表
- Sheets("帐目").Select
- ActiveSheet.Unprotect '取消工作表保护
- ActiveSheet.Range("$B$4:$Z$3000").AutoFilter Field:=25, Criteria1:="不隐藏" '帐目表超过3000行时需要更改代码
- Range("B3:Y3000").Select
- Selection.Copy
- Sheets.Add After:=Sheets(Sheets.Count) '新建一个工作表
- Sheets(Sheets.Count).Name = "副本" '改名副本
- Range("B2").Select
- Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
- SkipBlanks:=False, Transpose:=False
- Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
- xlNone, SkipBlanks:=False, Transpose:=False
- Columns("E:E").ColumnWidth = 3.38
- Columns("G:G").ColumnWidth = 10
- Columns("I:I").ColumnWidth = 10.38
- Columns("K:K").ColumnWidth = 10.25
- Columns("M:M").ColumnWidth = 10
- Range("B1").Select
- ActiveCell.FormulaR1C1 = "=帐目!R1C2" 'R1C2表示行号1,列号2即B列,赋予副本表标题
- Sheets("帐目").Select
- ActiveSheet.Range("$B$4:$Z$3000").AutoFilter Field:=25 '帐目表超过3000行时需要更改代码
- ActiveWindow.SmallScroll Down:=-80
- Range("A1").Select
- Application.CutCopyMode = False
- ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
- , AllowFiltering:=True
- Sheets("副本").Select
-
- End Sub
复制代码 |
|