2013-02-20 74 views
0

我试图做的是增量数,然后通过循环1 减去第一2数字,然后递增休息,直到第一2位数= 0更改VBA宏代码更改

所以我有M201001将成为m191002和明年将是m181003直到m011020

+2

不知道这是在题目这里,但如果你想与你工作在宏观帮助,它可能是有用的,包括它在你的问题';-)' – halfer 2013-02-20 23:47:28

+0

你确定VB.NET标记是正确的吗? VB.NET!= VB(或VBA)。 – Tim 2013-02-20 23:53:29

回答

0

什么你需要做的是你的价值分手使用leftmidright功能3成。

然后根据需要进行循环。我自己尝试一下,所以一旦我这样做,我会更新我的答案。

添加的代码:

Sub Testing() 

    Dim myIn As String 
    myIn = "M201001" 

    Dim myLeft As String 
    Dim myMid As Integer, myRight As Integer, i As Integer 
    Dim myOut As String 
    myLeft = Left(myIn, 1) 
    myMid = CInt(Mid(myIn, 2, 2)) 
    myRight = CInt(Right(myIn, 4)) 
    myOut = myLeft & Format(myMid, "00") & Format(myRight, "0000") 
    i = 0 

    Debug.Print "IN:  " & myIn 
    Debug.Print "BROKEN UP: " & myOut 

    Do Until myMid = -1 
     Debug.Print "ITERATION " & Format(i, "00") & ": " & myLeft & Format(myMid, "00") & Format(myRight, "0000") 

     myMid = myMid - 1 
     myRight = myRight + 1 
     myOut = myLeft & Format(myMid, "00") & Format(myRight, "0000") 
     i = i + 1 
    Loop 

End Sub 

如果您需要任何解释,请询问。我会很乐意解释。

+0

这真棒超出我的能力! 它甚至计算它内宏我猜是什么调试打印是和使用ITERATION现在得到了,我需要把它放在一个表格中,它将im戈纳德与它周围发布并张贴在这里 – 2013-02-21 05:38:41

+0

我不得不发布一个新的问题,因为该网站的规则,这样做是在这个页面上http://stackoverflow.com/questions/14996655/changing-vba-macro-code-to-change-number-part-2试图让它的工作几乎在那里 – 2013-02-21 07:28:18

0

使用试试这个

Function GetNextNumber(n As String) As Variant 
    ' Validate input 
    If Len(n) <> 7 Then 
     GetNextNumber = xlErrNum 
     Exit Function 
    ElseIf Left$(n, 1) <> "M" Then 
     GetNextNumber = CVErr(xlErrNum) 
     Exit Function 
    End If 

    GetNextNumber = Left$(n, 1) & Format(val(Mid$(n, 2)) - 9999, "000000") 

End Function 

测试此

Sub demo() 
    Dim n As Variant 

    n = "M201001" 
    Debug.Print n 
    Do 
     n = GetNextNumber(CStr(n)) 
     If IsError(n) Then Exit Sub 
     Debug.Print n 
    Loop Until val(Mid$(n, 2)) <= 19999 
End Sub 
+0

感谢您的帮助,但我需要它分开数量像宏观波纹管 – 2013-02-21 05:33:58

+0

我不得不发布一个新的问题,因为网站的状态规则这样做是在这个页面http://stackoverflow.com/questions/14996655/changing-vba-macro-code-to-change-number-part-2 – 2013-02-21 07:22:48