我有一个电子表格" ProductIDList"和许多其他电子表格。使用" ProductIDList",列A是产品名称,列B是productID。我想通过匹配" ProductIDList"中的产品名称,将productID插入其他电子表格的C列。和其他电子表格。 我编写此代码但它无法运行。 请帮忙: - (
Sub InsertProductID()
Dim ws As Worksheet
Dim i As Integer
Dim k As Integer
For Each ws In Worksheets
If ws.Name = "index" Or ws.Name = "ProductIDList" Then GoTo NEXXT
NEXXT:
ws.Activate
For i = 1 To 30000
For k = 1 To 30000
If ws.Cells(i, 2).Value = Sheets("ProductIDList").Cells(k, 1) Then
ws.Cells(i, 3).Value = Sheets("ProductIDList").Cells(k, 2).Value
End If
Next
Next
Next
End Sub
我编辑了我的代码。它现在可以运行了!但正如你们所说,它的运行速度非常慢。
Sub InsertProductID()
Dim ws As Worksheet
Dim i As Integer
Dim k As Integer
For Each ws In Worksheets
If ws.Name <> "index" And ws.Name <> "ProductIDList" Then
ws.Activate
For i = 1 To 70
For k = 1 To 70
If ws.Cells(i, 2).Value = Sheets("ProductIDList").Cells(k, 1) Then
ws.Cells(i, 3).Value = Sheets("ProductIDList").Cells(k, 2).Value
End If
Next
Next
End If
Next
End Sub
答案 0 :(得分:-1)
我认为此代码运行速度非常慢。
特别是,我不理解以下两行的含义:
If ws.Name = "index" Or ws.Name = "ProductIDList" Then GoTo NEXXT
NEXXT:
如果您的目标是跳过名为&#34; ProductIDList&#34;并且&#34;索引&#34;,您至少 - 将 NEXXT 标签放在最后Next
语句之前。一般来说,无论如何我都会避免使用无条件跳转。
尝试使用一些公式函数,比如VLOOKUP怎么样?一般来说,它们要快得多,但我不了解您的应用程序的要求。