Excel 如何快速循环单元范围或以下代码的任何其他替代方案
首先,我对宏没有任何知识,我用谷歌编译了以下代码。 它正在执行,但我必须在一个大范围内循环多次,这很慢。我怎样才能快点 代码是Excel 如何快速循环单元范围或以下代码的任何其他替代方案,excel,vba,Excel,Vba,首先,我对宏没有任何知识,我用谷歌编译了以下代码。 它正在执行,但我必须在一个大范围内循环多次,这很慢。我怎样才能快点 代码是 Public Sub getsum() For a_counter = 1 To 41194 skunow = Sheets(2).Range("A" & a_counter).Value sumofthissku = 0 For b_counter = 1 To 99944 anothersku = Sheets(1).
Public Sub getsum()
For a_counter = 1 To 41194
skunow = Sheets(2).Range("A" & a_counter).Value
sumofthissku = 0
For b_counter = 1 To 99944
anothersku = Sheets(1).Range("A" & b_counter).Value
If anothersku = skunow Then
qty = Sheets(1).Range("H" & b_counter).Value
If IsNumeric(qty) Then
sumofthissku = sumofthissku + qty
End If
End If
Next b_counter
Sheets(2).Range("B" & a_counter).Value = sumofthissku
Next a_counter
End Sub
解释-->我有两张表sheet1和sheet2
表1包含sku及其数量。但sku会重复多次。
表2只包含一次所有sku,我必须对表1中的数量求和,并将其放入表2中
值99944和41194我按两页中的行数进行硬编码。无需通过VBA方式。假设您的数据如下所示 在第一个单元格中使用Sumproduct公式,并使用自动填充功能
=SUMPRODUCT(($A$1:$A$8=E3)*($B$1:$B$8))
如果您仍然想要VBA解决方案,那么您可以将范围存储在数组中,然后在内存中执行计算,然后将数据转储回。什么不使用sumproduct公式?不要硬编码行号,您可以使用Sheets(“Sheet1”).Range(“a”&Rows.count”).end(xlup).row获取最后一行,这是动态的,比硬编码好得多。出于好奇,Siddharth,为什么是sumproduct而不是sumif?