-1
我有以下宏:代碼在for循環中不執行
Sub CalculateCQ()
'Part I: copy sample names
Dim SourceExcel As String, CQVals(1 To 8) As Single, RowNum As Integer, i As Integer, j As Integer
SourceExcel = Application.GetOpenFilename()
Workbooks.Open (SourceExcel)
Worksheets("Samples").Activate
Range("B2:B13").Copy
Windows("testbook.xlsx").Activate
Range("A3").PasteSpecial xlPasteValues
'Part II: copy CQ IR values
For i = 1 To i = 12 Step 1
Windows(SourceExcel).Activate
Worksheets("CQ").Activate
MsgBox "Running thought sample"
For j = 1 To j = 8 Step 1
RowNum = 2 + 25 * (i - 1) + 3 * (j - 1)
If Cells(RowNum, 5).Value = "inf" Or Cells(RowNum, 5).Value = "N/A" Then
CQVals(j) = 10000.1
Else
CQVals(j) = Val(Cells(RowNum, 5).Value)
End If
MsgBox CQVals(j)
Next j
Windows("testbook.xlsx").Activate
'Cells((i + 2), 2).Value = Application.WorksheetFunction.Average(CQVals)
Cells((i + 2), 2).Value = "Test"
Next i
End Sub
第一部分作品爲expacted,但第二部分似乎並沒有在所有執行。當試圖用MsgBox
縮小問題的範圍時,我發現第一個for循環內沒有任何內容(For i = 1 To i = 12 Step 1
)沒有得到執行。
"testbook.xlsx"
是宏工作簿
我正在標記關閉這個問題,因爲它是一個錯字(語法錯誤)。 – cybermonkey
請做。現在它工作正常。 –
不幸的是,VBA編輯器接受這是有效的語法。後臺發生的事情是,'i = 12'評估爲'false'(當時i爲0),false表示爲0(true = -1),因此for循環從'i = 1到0',因此從未執行。 – FunThomas