是否可以预填充 Excel 单元格?

是否可以预填充 Excel 单元格?

我目前正在处理一个 Excel 文件,该文件收集产品、它们的商品编码和其他一些数据。我想知道 Excel 中是否有功能可以预先填充包含 EAN 前缀的单元格,这样当我单击单元格时,我只需输入代码的最后几位数字。我知道我可以输入前缀,然后在需要数字时必须将光标移动到末尾,但这不太方便。

我曾考虑过使用 VBA(例如,如果此列中的单元格更改了一些数字字符串,它会将其修改为真正的 EAN,否则它会将其删除),但如果 Excel 上已经有可以执行此操作的东西,为什么不使用它呢。

这是所要求的示例。

我们假设前缀是 12345678,我只想输入最后 5 位数字。我想问的是是否有办法预填充下面的单元格,这样当我单击或通过 tab 或 enter 选择单元格时,我只需要输入最后 5 位数字,而不需要再次单击文本框以将光标放在末尾。

答案1

修复者1234方法正是我所寻找的,我已经使用单元格格式创建了自定义格式。

在我的例子中,前缀是 12345678 并且我正在寻找 5 位数字,因此格式为:

“12345678” 00000

“12345678”是前缀,放在引号之间以将其视为字符串。

00000是五位数的代码,我用的是#####一开始是可以的,但是当代码左边有一些零的时候,它们就不会显示出来。

因此,如果我想在单元格中显示 1234567800045,我只需放置 45。


如果由于某种原因您想使用完整值而不是显示的值,请查看jc 百慕大使用 VBA 的答案。

但是在 XL 文件上运行宏时要小心,您需要出于安全原因启用宏,并且通过电子邮件发送文件可能会被视为垃圾邮件。

答案2

这个宏是一个很好的起点:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    eancolumn = 1
    Prefix = "1234"
    therow = Target.Row
    thecolumn = Target.Column
    If eancolumn = thecolumn Then
        If Target.Value <> "" Then
            If IsNumeric(Target.Value) Then
                Target = Prefix & Target.Value
            End If
        End If
    End If
    Application.EnableEvents = True
End Sub

ALT使用+打开宏F11,双击工作表1在左侧,并将代码粘贴到右侧。Sheet 1每次发生更改时都会执行此代码。变量eancolumn决定在哪一列添加前缀。

相关内容