之前請海大解答的程式,也還蠻常用的,但每次要改也是蠻麻煩的,想說把有甚麼語法能將指定儲存格導回到VBA中作代數值使用,1~5該如何改寫X.M.N.R,才能讓下方能執行
1.Dim arrCode(X)
2.X  = Worksheets("Sheet1").Range("F1").Value
3.M  = Worksheets("Sheet1").Range("F2").Value
4.N  = Worksheets("Sheet1").Range("F3").Value
5.R  = Worksheets("Sheet1").Range("F4").Value
Public Sub 啟動表單()
    startRow = 3 
    startCol = 3 
    nIdx = 0
    For nI = 1 To M
        If nI = M Then nLoop = R Else nLoop = N
        For nJ = 1 To nLoop
            nIdx = nIdx + 1
            arrCode(nIdx) = Format(nI, "00#") & Format(nJ, "00#")
        Next nJ
    Next nI
    For nI = startRow To startRow + X - 1
        scode = Cells(nI, startCol)
        If (scode <> "") Then
            Call useCode(scode)
        End If
    Next nI
    For nI = startRow To startRow + X - 1
        scode = Cells(nI, startCol)
        If (scode = "") Then
            Cells(nI, startCol) = getCode
        End If
    Next nI
End Sub
Function useCode(ByVal code As String)
    For nI = 1 To X
        If (arrCode(nI) = code) Then
            arrCode(nI) = ""
            Exit For
        End If
    Next nI
End Function
Function getCode() As String
    For nI = 1 To X
        If (arrCode(nI) <> "") Then
            getCode = "'" & arrCode(nI)
            arrCode(nI) = ""
            Exit For
        End If
    Next nI
End Function
Sub 巨集1()
x = Range("A1")  'A1 = 指定儲存格
Range("B1") = x  '然後當代數用
End Sub
是要這種效果嗎
我這樣不是已經對x賦值, 就能在VBA裡使用了阿...剩下就看你要怎麼使用, 看不太懂你要的是什麼
拿你的例子來說你就能夠用來設定for的 1 to x 了
Dim arrCode(X)
(刪)
****編譯錯誤: 必須是常數運算函示
這句錯誤訊息表示你的定義他不接受,直接噴錯,建議你以後可以先了解一下你定義的東西是什麼,我們換個方式做一次:
Dim arrCode() As Integer '先定義一個動態陣列
X = Worksheets("Sheet1").Range("F1").Value '產生一個代數
ReDim arrCode(X) '再拿代數定義陣列
感謝KEVIN大,也剛好有機會再教育邏輯觀念