2013-02-20 72 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