繁体   English   中英

如何使用 VBA Excel 实现数组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM