[英]How to implement an array with VBA Excel?
我这里有这个代码,我想用 [12](12 个月)添加一个数组。
带//
的行是我需要实现的行,但我不太明白如何去做!
其余的工作正常:)
Sub titleHere()
Dim i As Long, var As Long
var = 0
//ARRAY[12] arr = {"Jan", "Fev", "Mar", etc...}
//Sheets("arr[0]").Cells(4, 3).Value = Sheets("INTRO").Cells(5, 2).Value
//For m = 1 To 11
For i = 3 To 32
If Cells(i, 19).Value = "C" Or Cells(i, 19).Value = "c" Then
If Cells(i, 20) = 0 Then
var = Sheets("INTRO").Cells(2, 2).Value
Else
var = Sheets("INTRO").Cells(2, 2).Value - Cells(i, 20).Value
End If
Else
var = 0
End If
// Sheets("arr[m]").Cells(4, 3) = Sheets("arr[m]").Cells(4, 3) - var
Next
// Next
End Sub
快速修复
Option Explicit
Sub titleHere()
Dim wb As Workbook
Set wb = ThisWorkbook ' The workbook containing this code.
Dim ws1 As Worksheet
Set ws1 = wb.Worksheets("INTRO")
Dim ws2 As Worksheet
Set ws2 = wb.ActiveSheet ' ?
Dim arr As Variant
arr = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", _
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
Dim m As Long
Dim i As Long
Dim var As Long
Dim ws As Worksheet
Set ws = Worksheets(arr(LBound(arr)))
ws.Cells(4, 3).Value = ws1.Cells(5, 2).Value
For m = LBound(arr) + 1 To UBound(arr)
Set ws = wb.Worksheets(arr(m))
For i = 3 To 32
If StrComp(ws2.Cells(i, 19).Value, "c", vbTextCompare) = 0 Then
If ws2.Cells(i, 20) = 0 Then
var = ws1.Cells(2, 2).Value
Else
var = ws1.Cells(2, 2).Value - ws2.Cells(i, 20).Value
End If
Else
var = 0
End If
ws.Cells(4, 3) = ws.Cells(4, 3) - var
Next i
Next m
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.