Excel 跨工作表的嵌套循环不起作用

Excel 跨工作表的嵌套循环不起作用,excel,vba,Excel,Vba,如果这是一个愚蠢的问题,请原谅——我已经有20年没有尝试过编程了,所以我相当生疏 给定以下代码: Count = 0 Count2 = 0 Set BlankCell = Sheets("Credits").Range("L13") Set SpareCell = Sheets("Telesales").Range("N1") For Count = 0 To EndOfCredits For Count2 = 0 To EndOfMerge If Blan

如果这是一个愚蠢的问题,请原谅——我已经有20年没有尝试过编程了,所以我相当生疏

给定以下代码:

Count = 0
Count2 = 0
Set BlankCell = Sheets("Credits").Range("L13")
Set SpareCell = Sheets("Telesales").Range("N1")

   For Count = 0 To EndOfCredits
      For Count2 = 0 To EndOfMerge
         If BlankCell.Offset(Count) = SpareCell.Offset(Count2) Then
         BlankCell.Offset(Count, 1) = SpareCell.Offset(Count2, -1)
         End If
      Next Count2
  Next Count
这是为了比较两个列表。如果存在匹配项,则SpareCell左侧单元格的值应显示在BlankCell右侧的单元格中

没有。已经三天了。我开始失去了生存的意志

像这样尝试吧

Option Explicit

Sub Main()

count = 0
count2 = 0

Set blankCell = Sheets("Credits").Range("L13")
Set spareCell = Sheets("Telesales").Range("N1")

For count = 0 To endOfCredits
    For count2 = 0 To endOfMerge
        If blankCell.Offset(count, 0) = spareCell.Offset(count2, 0) Then
            blankCell.Offset(count, 1) = spareCell.Offset(count2, -1)
        End If
    Next count2
Next count

End Sub
我的完整工作版本和样本数据如下

Option Explicit

Sub Main()

Dim count As Long
Dim count2 As Long
Dim endOfCredits As Long
Dim endOfMerge As Long

Dim blankCell As Range
Dim spareCell As Range

count = 0
count2 = 0
Set blankCell = Sheets("Credits").Range("L13")
Set spareCell = Sheets("Telesales").Range("N1")

endOfCredits = 17
endOfMerge = 10

For count = 0 To endOfCredits
    For count2 = 0 To endOfMerge
        If blankCell.Offset(count, 0) = spareCell.Offset(count2, 0) Then
            blankCell.Offset(count, 1) = spareCell.Offset(count2, -1)
        End If
    Next count2
Next count

End Sub
以前的数据

单张信用证

单张电话销售

运行宏后的数据


可以解释
它不能解释。
?正在发生什么以及应该发生什么?也许可以举个例子谢谢。如果您发现在程序的前面将EndOfCredits重置为0,则我的功能正常。你的回答让我一行一行地看了一遍代码,再次感谢你。我正要去踢一只猫。好吧,我很高兴你已经解决了。如果我的回答有助于你接受它:)@mehow:
blankCell.Offset(count,0)
与写入
blankCell.Offset(count)
相同,例如
blankCell.Offset(0,1)
与写入
blankCell.Offset(,1)