白话Excel函数公式 Office易学宝微视频教程合集(Excel+Word+PPT)
笨办法学VBA(从入门到精通) 高效办公必会的Office实战技巧
财务总监的Excel私房课 Excel数据透视表实战秘技
Excel图表神技
查看: 1292|回复: 0

[VBA] 简单的小程序,跟大家分享,希望给与更好的指正

[复制链接]
发表于 2013-10-30 09:14:07 | 显示全部楼层 |阅读模式
1、目的:
    将用户对日程表的修改信息做以记录
2、Excel的sheet构成:
    一个工作日程表,由每个成员记录项目进展情况;
    VBA自动生成的Log表,隐藏属性,每月一份;
3、VBA代码:

Private Sub Worksheet_Change(ByVal Target As Range)

  On Error GoTo Errend
  ThisWorkbook.Sheets("log").Activate
  ActiveSheet.Range("A1").End(xlDown).Select
  If Month(Selection) <> Month(Now()) Then
     ActiveSheet.Name = Month(Now()) - 1
     ActiveSheet.Visible = False
     Sheets.Add , ActiveSheet
    ActiveSheet.Name = "log"
    ActiveSheet.Columns("A:A").Select
    Selection.ColumnWidth = 16
    ActiveSheet.Columns("B:B").Select
    Selection.ColumnWidth = 10
    ActiveSheet.Columns("C:C").Select
    Selection.ColumnWidth = 10
    ActiveSheet.Columns("D:D").Select
    Selection.ColumnWidth = 30
    ActiveSheet.Range("A1").Formula = "Time"
    ActiveSheet.Range("B1").Formula = "Editor"
    ActiveSheet.Range("C1").Formula = "No"
    ActiveSheet.Range("D1").Formula = "Item"
    ActiveSheet.Range("A1").Select
End If

Selection.Offset(1, 0).Select
Selection.Formula = Now()
Selection.Offset(0, 1).Formula = Application.UserName
Selection.Offset(0, 2).Formula = Sheet1.Range("A1").Offset(Target.Row - 1, 0).Value
Selection.Offset(0, 3).Formula = Sheet1.Range("A4").Offset(0, Target.Column - 1).Value
Sheet1.Activate

Errend:
End Sub

4、备注:
     很多代码都是有录制宏得到的一些属性等信息,是否能有更快更好的代码呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入学

本版积分规则

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