从通过表单输入的值创建ID

时间:2017-09-11 12:39:16

标签: excel vba forms cells

对于VBA来说都是新手,但是不得不用Excel创建某种数据库,我认为VBA的工作量很快就会减少处理。

所以,我创建了一个包含5个编辑的表单和一个按钮,其功能是将输入的数据复制到文档中的Worksheet表中。

.Cells(lRow, 3).Value = Me.oname.Value
.Cells(lRow, 4).Value = Me.ojahr.Value
.Cells(lRow, 5).Value = Me.oraum.Value
.Cells(lRow, 6).Value = Me.oregal.Value
.Cells(lRow, 7).Value = Me.osegment.Value

现在我要添加的是一种从这些值中的3个和序列号创建某种“唯一”id的方法。

最好的办法就是让它像X-Y-Z-0001一样 (X,Y,Z,是数值)

这就是我将数据复制到工作表的方式,我尝试使用

.Cells(lRow, 8).Value = Me.osegment.Value & "-" & Me.osegment.Value & "-" & Me.osegment.Value

遗憾地返回作为日期值(任何想法来解决这个问题?)

因此我将其改为

.Cells(lRow, 8).Value = Me.osegment.Value & "_" & Me.osegment.Value & "_" & Me.osegment.Value

运行良好,至少按预期(但“ - ”版本看起来更好),唯一缺少的是唯一标识符,例如“0001”。

所以我的想法是执行一些“IF”函数来检查

的组合
.Cells(lRow, 8).Value = Me.osegment.Value & "_" & Me.osegment.Value & "_" & Me.osegment.Value

如果此组合之前不存在,请添加_0001。 否则,请检查现有的X_Y_Z_000X值并使用+1。

任何形式的帮助都不仅仅是值得赞赏的。 :)

最好的问候

1 个答案:

答案 0 :(得分:0)

您可能想尝试以下代码:

Dim ONameVal As String
Dim OJahrVal As String
Dim OJaumVal As String
Dim ORegalVal As String
Dim OSegmentVal As String

ONameVal = Me.oname.Value
OJahrVal = Me.ojahr.Value
OJaumVal = Me.oraum.Value
ORegalVal = Me.oregal.Value
OSegmentVal = Me.osegment.Value

.Cells(lRow, 3).Value = ONameVal
.Cells(lRow, 4).Value = OJahrVal
.Cells(lRow, 5).Value = OJaumVal
.Cells(lRow, 6).Value = ORegalVal
.Cells(lRow, 7).Value = OSegmentVal

.Cells(lRow, 8).Value = OSegmentVal & "-" & OSegmentVal & "-" & OSegmentVal

希望得到这个帮助。