当前的问题:
我的代码曾经部分工作,直到我向 sheet2 添加额外数据,现在当它失败并调试时将我发送到:
Set partsheet = Worksheets("Sheet1").Range("A1", Range("A65536").End(xlUp))
此代码的实用程序:
我基本上在不同的工作表中有两列:我想比较 & 当类似的导入数据:
Sheet1 - column1 是作业编号
Sheet1 - column2 是零件号
对于相同的作业编号,您可以有多个部分 - 这意味着作业编号在第 1 列中重复出现
Sheet2 - column1 与 sheet1 的作业编号相同,但数据从不重复
Sheet2 - column2 是特定于每个作业编号的 ID 号(因此为什么在这种情况下作业编号不会重复)
因此,我想使用公共作业编号作为参考点从 Sheet2 - column2 导入数据。当我将数据导入 Sheet1 - column3 时,唯一的 ID 号将不得不重复 column1(sheet1) 中重复的作业编号 - 因此是双 for 循环。
我所说的用于部分工作的意思是:
从代码仅部分工作开始,我认为这是因为 sheet1 - column1 中的某些作业编号在 sheet2 - column1 中没有相应的值(数据不完美)。也许我需要为 if 语句的 else 部分添加代码,但我不确定是什么。
vba 代码:
Option Explicit
Sub testFil()
Dim Jobref_in_partsheet As Range
Dim Jobref_in_jobsheet As Range
Dim partsheet As Range
Dim jobsheet As Range
Dim MyRow As Long
Dim MyOtherRow As Long
Set partsheet = Worksheets("Sheet1").Range("A1", Range("A65536").End(xlUp))
Set jobsheet = Worksheets("Sheet2").Range("A1", Range("A65536").End(xlUp))
For Each Jobref_in_partsheet In partsheet
For Each Jobref_in_jobsheet In jobsheet
If Jobref_in_partsheet.Value = Jobref_in_jobsheet.Value Then
MyRow = Jobref_in_partsheet.Row
MyOtherRow = Jobref_in_jobsheet.Row
Worksheets("Sheet1").Cells(MyRow, 3) = Worksheets("Sheet2").Cells(MyOtherRow, 2)
Else
'Do nothing
End If
Next
Next
End Sub
我真的很感激我能得到的任何帮助。