我已经为我的公司编写了一个excel宏,它在选择具有序列号的单元格后,从此SN生成日期(日期编码在SN中),然后从同一行中的另一个日期中减去此日期,以产生一个月的产品寿命。它作为一个具有命令按钮作为触发器的子例程很好地工作(请参见截图)。现在将单元格内容传递给变量,处理它,然后将它返回到另一个单元格
我想用该宏为某种式的,以便它返回在细胞在该排的,而不是一个消息的结束的转换/计算的结果。我已经将该子例程转换为函数,但它只返回“#VALUE”。谁能帮我?
下面是代码:
Sub Lifetime()
Dim c As String
Dim m As String
Dim y As String
Dim d1 As String
Dim d2 As String
Dim d1cd As Date
Dim d2cd As Date
Dim d3 As Integer
c = ActiveCell.Value
If Len(c) = 9 Then
y = Mid(c, 2, 2)
c = Left(c, 1)
m = Asc(c) - 64
d1 = "20" + y & "/" & m & "/01"
d1d = CDate(d1)
d2 = ActiveCell.Offset(, 5).Value
d2d = CDate(d2)
d3 = DateDiff("m", d1d, d2d)
MsgBox ("Die Lifetime der Pumpe beträgt " & d3 & " Monate")
ElseIf Len(c) = 12 Then
y = Mid(c, 3, 2)
m = Left(c, 2)
d1 = "20" + y & "/" & m & "/01"
d1d = CDate(d1)
d2 = ActiveCell.Offset(, 5).Value
d2d = CDate(d2)
d3 = DateDiff("m", d1d, d2d)
MsgBox ("Die Lifetime der Pumpe beträgt " & d3 & " Monate")
Else
MsgBox ("Ungültige Seriennummer")
End If
End Sub
PS:不好意思,可能是我没有讲清楚(我不是一个母语):我想用这个功能就像一个公式(“=寿命(B2)”为例),这样我就可以向下拖动填充柄,它会自动处理其他行,像这样:
你不应该有像12和9的幻数。 – ja72 2014-08-28 00:06:29