Excel 跨工作表的嵌套循环不起作用
如果这是一个愚蠢的问题,请原谅——我已经有20年没有尝试过编程了,所以我相当生疏 给定以下代码: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
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)