none
VB排列設定 RRS feed

  • 問題

  • 你好,小弟希望能看到彩卷的所有排列組合,以下是我嘗試修改的數值,希望能讓一格顯是6+1個號碼,但現在只能讓每一格顯示第一區1~38號,無法顯示第二區1~8號,請教該如何修改,才能讓一格顯示"11,12,13,14,15,16,8"、"21,22,23,24,25,26,1"這種完整的6+1個號碼呢,謝謝。 

    Private Sub CommandButton1_Click() 
    Dim a(38) As String, i As Integer 

    For i = 1 To 38 
    a(i) = i 
    Next 
    Test a, "", 1, 0, 1, 1 
    End Sub 
    Sub Test(a() As String, S As String, p As Integer, t As Integer, r As Long, c As Long) 
    Dim i As Integer 

    If t = 6 Then 
    Cells(r, c) = Left(S, Len(S) - 1) 
    r = r + 1 
    If r > 983025 Then r = 1: c = c + 1 
    Exit Sub 
    End If 
    For i = p To UBound(a) 
    Test a, S & a(i) & ",", i + 1, t + 1, r, c 
    Next 
    End Sub

    2017年10月11日 上午 04:43

解答

  • 因為你要Test執行自已,基於保護機制,它不允許變數在Test()之外變動再帶入參數,
    如果你一定要用這方式來寫的話,就必須用一些小技巧:


    2017年10月11日 下午 01:52

所有回覆

  • 因為你要Test執行自已,基於保護機制,它不允許變數在Test()之外變動再帶入參數,
    如果你一定要用這方式來寫的話,就必須用一些小技巧:


    2017年10月11日 下午 01:52
  • 您可以在For迴圈中加入延遲再試看看, 如果程式一直在迴圈執行, 會因為忙碌而無暇更新顯示的數字, 例如:

    Thread.Sleep(10)

    2017年10月11日 下午 01:59
  • 抱歉,小弟嘗試修改以上的數值還是無法成功得到想要的答案....可否請大大幫我修改讓我了解,謝謝。
    2017年10月28日 上午 05:37