用于自动完成部分输入(数字)的Excel编程

时间:2011-01-12 20:03:39

标签: excel vba

我们在Excel中管理库存。我知道它有点老式,但我们正在发展商业公司,我们所有的资金都在业务上被封锁,没有钱投资IT。

所以我想知道我能以excel自动完成产品编号的方式编程吗?

这是一个产品类别的例子 Example

我们所有的设计代码都是6位数字,我真正想要的是,当只添加部分数字并点击输入时,会自动完成剩余的数字,取以上数字。

例如,在这种情况下,我期待的是,如果我输入5点击输入,则会根据上面的数字自动输入790705

2 个答案:

答案 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。