Excel / VBA将相邻单元格的值添加到总计中,并在每张纸上进行此操作

问题描述 投票:0回答:1

我有一本工作簿,里面有13张纸。 12是一年中的几个月,而13是我进行所有计算的地方。每个月看起来像这样:

Fruit     Box 1     Box 2     Box 3
Apple     5         2         1
Orange    2         2         3

我编写的代码应该查看第13张纸上的第一种水果类型,然后遍历每个月的纸,寻找相同的水果,如果存在,则在Box 2列中添加同一行的值。经过全部12个月后,将总数放在同一行,第13页水果类型的下一列。当到达将值发布到单元格的位置时,我的代码将挂断。

Sub FY_Appearance()

Dim lcalc As Long
With Application
    lcalc = .Calculation
    .DisplayAlerts = False
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    .EnableEvents = False
End With

LastRow = Cells(Rows.Count, 1).End(xlUp).Row

Dim ArrayOne As Variant
ArrayOne = Array("Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept")

'
'
'Fruit Count
'
'
For Each Cel In Worksheets("Fruit Appearance").Range("A2:A" & LastRow)

    x = 0
    For Each Mnth In ThisWorkbook.Sheets(ArrayOne)

        LR2 = Mnth.Cells(Rows.Count, 1).End(xlUp).Row
        For Each Cel2 In Mnth.Range("A2:A" & LR2)

            If Cel = Cel2 Then x = x + Cel2.Offset(0, 2).Value2

        Next Cel2

    Next Mnth
    Worksheets("Fruit Appearance").Cells(Cel.Columns + 1).Value = x

Next Cel

End Sub

我曾尝试将.Value引入和引入不同的行,但是它对我没有用,至少没有以我期望的任何组合。如果您有更有效的方式来做到这一点,我会全力以赴。感谢您的关注!

excel vba offset mismatch
1个回答
0
投票

我终于知道了。感谢您的考虑。我意识到我的变量Cel已经由工作表位置定义了,所以我的变量是重复的。我将挂断的线路更改为:

Cel.Offset(0, 1).Value = x

除了重复项,我可能没有正确使用列。

© www.soinside.com 2019 - 2024. All rights reserved.