-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