如何以快速的方式循环遍历单元格范围,或者用于以下代码的其他select

首先,我没有任何有关macros的知识,并使用谷歌编译下面的代码。 它正在执行,但我必须循环多次,这是很慢的。 我怎样才能使代码快速

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公式并使用Autofillfunction。

 =SUMPRODUCT(($A$1:$A$8=E3)*($B$1:$B$8)) 

如果您仍然需要VBA解决scheme,那么您可以将范围存储在一个数组中,然后在内存中执行计算,然后将数据转储回去。