Excel/VBA 将相邻单元格的值添加到您的总计中,并对每个 sheet
Excel/VBA Add the value of an adjacent cell to your total and do so for each sheet
我有一个包含 13 sheet 的工作簿。 12 是一年中的几个月,第 13 个月是我进行所有计算的地方。
每个月看起来有点像这样:
Fruit Box 1 Box 2 Box 3
Apple 5 2 1
Orange 2 2 3
我写的代码应该在 13 日查看第一个水果类型 sheet,然后遍历每个月 sheet,寻找相同的水果,如果存在则添加值方框 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 ,但它对我没有用,至少在我期望有意义的任何组合中都没有用。如果您有更有效的方法,我会洗耳恭听。
感谢观看!
我终于明白了。感谢您的考虑。
我意识到我的变量 Cel 已经由工作表位置定义,所以我的变量是重复的。
我将挂断的线路更改为:
Cel.Offset(0, 1).Value = x
除了重复之外,我可能没有正确使用列。
我有一个包含 13 sheet 的工作簿。 12 是一年中的几个月,第 13 个月是我进行所有计算的地方。 每个月看起来有点像这样:
Fruit Box 1 Box 2 Box 3
Apple 5 2 1
Orange 2 2 3
我写的代码应该在 13 日查看第一个水果类型 sheet,然后遍历每个月 sheet,寻找相同的水果,如果存在则添加值方框 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 ,但它对我没有用,至少在我期望有意义的任何组合中都没有用。如果您有更有效的方法,我会洗耳恭听。 感谢观看!
我终于明白了。感谢您的考虑。 我意识到我的变量 Cel 已经由工作表位置定义,所以我的变量是重复的。 我将挂断的线路更改为:
Cel.Offset(0, 1).Value = x
除了重复之外,我可能没有正确使用列。