四層嵌套循環生成參數組合,需將滿足條件的 m, n, o, p 寫入 Excel。
Open "C:\Data\export.csv" For Output As #1
For m = 68 To 80 Step 3
For n = 12.6 To 16.2 Step 1.2
For o = 3.6 To 4.4 Step 0.2
For p = 210 To 275 Step 30
If m <> n And m <> o And m <> p And n <> o And n <> p Then
' 寫入一行,字段用逗號分隔,雙引號包裹含逗號字段
Print #1, m & "," & n & "," & o & "," & p
End If
Next p
Next o
Next n
Next m
Close #1
' 用戶雙擊即可在 Excel 打開
優點:零依賴、極快、跨平台可讀。
缺點:無格式/公式/多工作表,純數據。
' 需引用 "Microsoft Excel XX.0 Object Library"
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Sheets(1)
Dim rowIdx As Long: rowIdx = 1
' 寫表頭
xlSheet.Cells(rowIdx, 1).Value = "m"
xlSheet.Cells(rowIdx, 2).Value = "n"
xlSheet.Cells(rowIdx, 3).Value = "o"
xlSheet.Cells(rowIdx, 4).Value = "p"
For m = 68 To 80 Step 3
For n = 12.6 To 16.2 Step 1.2
For o = 3.6 To 4.4 Step 0.2
For p = 210 To 275 Step 30
If m <> n And m <> o And m <> p And n <> o And n <> p Then
rowIdx = rowIdx + 1
xlSheet.Cells(rowIdx, 1).Value = m
xlSheet.Cells(rowIdx, 2).Value = n
xlSheet.Cells(rowIdx, 3).Value = o
xlSheet.Cells(rowIdx, 4).Value = p
End If
Next p
Next o
Next n
Next m
' 可選:自動調整列寬、加粗表頭、凍結窗格
xlSheet.Columns.AutoFit
xlSheet.Rows(1).Font.Bold = True
xlApp.ActiveWindow.FreezePanes = True
' 保存並釋放
xlBook.SaveAs "C:\Data\export.xlsx"
xlBook.Close False
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
關鍵優化**:
Range("A2:D1000").Value = arr,避免逐 Cell 寫入的跨進程調用開銷(快 100 倍+)。xlApp.ScreenUpdating = False 關閉屏幕刷新。| 場景 | 推薦方案 |
|---|---|
| 一次性導出、純數據、無 Excel 環境 | CSV |
| 需格式/圖表/公式/多表、用戶二次編輯 | COM 自動化 |
| 高性能/大數據量 (萬行+) | COM + 陣列批量寫入 或 ClosedXML/EPPlus (.NET) / Apache POI (Java) |
VB6 時代經典,核心思想在現代技術棧中依然通用。