利用VBA使Excel自动生成某列的问题。

来源:百度知道 编辑:UC知道 时间:2024/05/05 14:30:36
我用Excel给客户做一个模板,由客户填写数据,最终导入到数据库里。
所以,对于ID列,我希望不是由客户填写的,而是我给他自动生成好的,请问该怎么做呢?
另外,有没有办法使ID列没法由用户进行编辑,但是我可以通过自动生成的方式增加值,程序应该怎么写?(另加50分)

比如,A列是ID列,B列输入值时,A列自动编号,且不让用户编辑.(第一行是标题)
一,把A列设置成锁定,其它列不锁定,然后保护工作表.此目的是不让用户编辑A列.
二,写入如下代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row > 1 Then
If Cells(Target.Row, Target.Column) <> "" Then
Sheets("Sheet1").Unprotect
Dim x
x = Application.WorksheetFunction.CountA([A:A])
Cells(Target.Row, 1) = x
Sheets("Sheet1").Protect
Else
Sheets("Sheet1").Unprotect
Cells(Target.Row, 1) = ""
Sheets("Sheet1").Protect
End If
End If
End Sub

自动生成好用“数据”-“数据有效性”-“序列”,在序列里指定好,客户也不用输入,也不能输入,只要选择即可