【发布时间】:2013-12-04 16:03:01
【问题描述】:
我已经为我的 VBA 代码使用了这个循环,但是在我将它应用到整个数据集之后,处理和 excel 崩溃的时间太长了。我想避免遍历超过 100,000 行和列...但我不知道如何
代码如下:
Sub Splitter_Step1()
Dim Brand, lastBrand, BrandList As Range
Set lastBrand = Sheets("RefList").Range("B1").End(xlDown)
Set BrandList = Sheets("RefList").Range("B1", lastBrand)
Dim Product, ProductList, lastProduct As Range
Set lastProduct = Sheets("Products").Range("G2").End(xlDown)
Set ProductList = Sheets("Products").Range("G2", lastProduct)
Dim Parent As Range
Dim Model As Range
For Each Brand In BrandList
For Each Product In ProductList
Set Parent = Brand.Offset(0, -1)
If InStr(1, Product, Brand, 1) And IsEmpty(Product.Offset(0, 1).Value) Then
Product.Offset(0, 1).Value = Parent + Brand
ElseIf Not IsEmpty(Product.Offset(0, 1).Value) Then
If InStr(1, Product, Brand, 1) Then
Product.Offset(0, 2).Value = "2"
End If
End If
Next Product
Next Brand
谢谢!
【问题讨论】:
-
我知道我们可以读取您当前的循环,但您的最终目标是什么,以便我们能够提供准确的解决方案?