我目前正在处理一个 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
决定在哪一列添加前缀。