EXCEl中把两段VBA代码合用。就是一个工作表中同时运行两个代码。
PrivateSubWorksheet_Change(ByValTargetAsRange)DimcAsRangeForEachcInTarget.CellsWithcI...
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target.Cells
With c
If .Value <> "" Then
ActiveSheet.Unprotect "123"
.Locked = True
ActiveSheet.Protect "123"
End If
End With
Next
End Sub
和
Private Sub Worksheet_Change(ByVal Target As Range)
'当输入单元格不为空格,并且列标为1时(输入数据在A列则Target.Column = 1,B列则=2,依次类推)
If Target.Text <> "" And Target.Column = 1 Then
'同行下列单元格=系统日期.
'(在输入的单元格后面返回日期则Target.Offset(0, 1).Value = Date,
'前面返回日期则Target.Offset(0, -1).Value = Date,
'下面返回日期则Target.Offset(1, 0).Value = Date)
Target.Offset(0, 2).Value = Date
End If
End Sub
我是用来做文件取号管理的,自己从网上找到这两个代码改成自己想要的了,单独能用,并到一块不会弄。
如果有高手能有更简便的方法请不吝赐教,如果做的好可以另给分。
要求:1.150个文件取号,比如《通知》,张三今天使用时取号为TZ-001-110301,
(中间三位是序号、后边六位是日期) 李四明天取号为TZ-002-110302
2.取号人点对应的文件名或输入文件名,然后输入自己姓名,自动出现编号和取号日期(显示时间更好),且保存后所有内容不能变动,且不能修改。 展开
Dim c As Range
For Each c In Target.Cells
With c
If .Value <> "" Then
ActiveSheet.Unprotect "123"
.Locked = True
ActiveSheet.Protect "123"
End If
End With
Next
End Sub
和
Private Sub Worksheet_Change(ByVal Target As Range)
'当输入单元格不为空格,并且列标为1时(输入数据在A列则Target.Column = 1,B列则=2,依次类推)
If Target.Text <> "" And Target.Column = 1 Then
'同行下列单元格=系统日期.
'(在输入的单元格后面返回日期则Target.Offset(0, 1).Value = Date,
'前面返回日期则Target.Offset(0, -1).Value = Date,
'下面返回日期则Target.Offset(1, 0).Value = Date)
Target.Offset(0, 2).Value = Date
End If
End Sub
我是用来做文件取号管理的,自己从网上找到这两个代码改成自己想要的了,单独能用,并到一块不会弄。
如果有高手能有更简便的方法请不吝赐教,如果做的好可以另给分。
要求:1.150个文件取号,比如《通知》,张三今天使用时取号为TZ-001-110301,
(中间三位是序号、后边六位是日期) 李四明天取号为TZ-002-110302
2.取号人点对应的文件名或输入文件名,然后输入自己姓名,自动出现编号和取号日期(显示时间更好),且保存后所有内容不能变动,且不能修改。 展开
2个回答
展开全部
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target.Cells
With c
If .Value <> "" Then
ActiveSheet.Unprotect "123"
.Offset(0, 2).Value = Date
.Locked = True
ActiveSheet.Protect "123"
End If
End With
Next
End Sub
-----
另外,取号的规则不明:
同一本文件,多个人取,怎么写入表格?是每个人取时加一行数据?还是就这一行,改人名?
编号是不同文件不同编号?还是同一本按取的时间 把 序号 往上加?
Hi我吧,详细解答
Dim c As Range
For Each c In Target.Cells
With c
If .Value <> "" Then
ActiveSheet.Unprotect "123"
.Offset(0, 2).Value = Date
.Locked = True
ActiveSheet.Protect "123"
End If
End With
Next
End Sub
-----
另外,取号的规则不明:
同一本文件,多个人取,怎么写入表格?是每个人取时加一行数据?还是就这一行,改人名?
编号是不同文件不同编号?还是同一本按取的时间 把 序号 往上加?
Hi我吧,详细解答
追问
一共150多个文件
1.《通知》编号为TZ-序号-日期
张三使用编号为TZ-001-110301
李四明天使用编号为TZ-002-110302
……
2.《传真》编号为CZ--序号-日期
王五用CZ-001-110301
赵大用CZ-002-110303
……
3.……
是每个人取时加一行数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你得那个TZ是通知?那么JL7.3是怎么来的?是不是只需要中间三位顺序增加,后面六位显示当天日期就行?
更多追问追答
追问
JL7.3是其他文件的代号,这与整体代码设计没影响吧?我给的表格供参考。
我的目的有两个:
1.现在我的表格就能实现我所说的功能,就是希望高手能把代码合并。能同时在一个工作表中使用。
2.如果有高手能给做一个更简便的更好,另加分。
追答
合并代码就是把上面两个过程的代码合并就行了阿。你的第一段是加密,第一段是写日期。如下:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Text "" And Target.Column = 1 Then
Target.Offset(0, 2).Value = Date
End If
Dim c As Range
For Each c In Target.Cells
With c
If .Value "" Then
ActiveSheet.Unprotect "123"
.Locked = True
ActiveSheet.Protect "123"
End If
End With
Next
End Sub
我上面的问题是考虑你具体的应用需要,看怎么修改代码能更好。好像代码没有自动编号的内容吧?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询