我们在Excel中管理库存。我知道它有点老式,但我们正在发展商业公司,我们所有的资金都在业务上被封锁,没有钱投资IT。
所以我想知道我能以excel自动完成产品编号的方式编程吗?
这是一个产品类别的例子
我们所有的设计代码都是6位数字,我真正想要的是,当只添加部分数字并点击输入时,会自动完成剩余的数字,取以上数字。
例如,在这种情况下,我期待的是,如果我输入5
点击输入,则会根据上面的数字自动输入790705
。
答案 0 :(得分:2)
将以下VBA代码添加到工作表的代码部分:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim oldText As String, aboveText As String, newText As String
If Target.Column = 2 And Target.Row >= 3 And Target.Text <> "" Then
oldText = Target.Text
aboveText = Target.Cells(0, 1).Text
If Len(aboveText) = 6 And Len(oldText) < 6 Then
newText = Left(aboveText, 6 - Len(oldText)) & oldText
Application.EnableEvents = False
Target.Value = newText
Application.EnableEvents = True
End If
End If
End Sub
(根据工作表中的实际列/行号更改上面的列号和最小行号。)
答案 1 :(得分:0)
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If (Target.Column = 2 And Target.Row > 2 And Target.Value < 10) Then
Target = Target.Offset(rowOffset:=-1) + 1
End If
End Sub
只要在新行中输入一位数字,它就会转换为前一行+ 1。