Excel 查找搜索的问题

Excel 查找搜索的问题,excel,vba,Excel,Vba,我正试图编写一个宏来比较列L和列N中的两个值。下面的代码保持 Set SpareCell = Range("R1") Set BlankCell = Range("L14") Count = 0 Count2 = 0 Do While BlankCell <> "" Do While SpareCell <> "" If BlankCell.Offset(Count) = SpareCell.Offset(Count2) Then

我正试图编写一个宏来比较
列L
列N
中的两个值。下面的代码保持

Set SpareCell = Range("R1")
Set BlankCell = Range("L14")
Count = 0
Count2 = 0

Do While BlankCell <> ""
    Do While SpareCell <> ""
        If BlankCell.Offset(Count) = SpareCell.Offset(Count2) Then
            Range(BlankCell.Offset(Count), BlankCell.Offset(Count, -11)).Copy
            Range(BlankCell.Offset(EndOfCredits), BlankCell.Offset(EndOfCredits, -11)).PasteSpecial
            BlankCell.Offset(EndOfCredits) = SpareCell.Offset(Count2, -1)
            EndOfCredits = EndOfCredits + 1
        End If
        Count2 = Count2 + 1
    Loop
    Count = Count + 1
Loop
Set SpareCell=范围(“R1”)
设置空白单元格=范围(“L14”)
计数=0
Count2=0
当空白单元格“”时执行此操作
“当斯帕雷塞尔的时候做”
如果BlankCell.Offset(Count)=SpareCell.Offset(Count2),则
范围(BlankCell.Offset(Count),BlankCell.Offset(Count,-11))。复制
范围(BlankCell.Offset(EndOfCredits),BlankCell.Offset(EndOfCredits,-11)).PasteSpecial
BlankCell.Offset(EndOfCredits)=SpareCell.Offset(Count2,-1)
EndOfCredits=EndOfCredits+1
如果结束
Count2=Count2+1
环
计数=计数+1
环
宏在第二次执行while后的行崩溃。任何想法都受到了感激


基本上,从
L14开始的数据包括发票编号。从
R1
开始的数据还包括发票编号,
Q1
中其左侧的数据是在
R
中合并到发票中的发票编号。这可能会发生多次,因此
Vlookup
将不起作用。复制和粘贴代码希望复制行
A-L
中存在匹配项的数据,并将其粘贴到底部,该行保存在
EndOfCredits
中。然后粘贴
Q
中的值以代替
L


抱歉-我没有足够的声誉来发布截图-很难相信,我知道

一旦条件直接使用单元格内容(即在范围中添加“.Text”或“.Value”),代码应立即运行:

Do While BlankCell.Text“”
当SpareCell.Text“”时执行此操作
如果BlankCell.Offset(Count).Text=SpareCell.Offset(Count2).Text,则
顺便说一句,如果访问单个单元格的内容,您也应该应用这种方法:
BlankCell.Offset(EndOfCredits)。Value=SpareCell.Offset(Count2,-1)。Value


向您致意,Kawi42

不必先讨论代码,您能否准确地告诉我们此代码试图实现什么?双
Do-While
循环有点极端,尤其是当您试图比较和复制/粘贴单元格时基本上,从L14开始的数据包括发票编号。从R1开始的数据还包括发票编号,Q1中左边的数据是合并到R中发票中的发票编号。这可能会发生多次,因此Vlookup无法工作。复制和粘贴代码希望复制A-L行中存在匹配项的数据,并将其粘贴到EndOfCredits中的底部。然后将Q中的值粘贴到L中的值的位置。您的问题不是很清楚。你能附上一些屏幕截图或显示你的数据是什么样子的吗。我已经准备好了一个示例代码,我想在发布解决方案之前对其进行测试。此外,我可以看到一些其他错误。
Do While BlankCell.Text <> ""
    Do While SpareCell.Text <> ""
        If BlankCell.Offset(Count).Text = SpareCell.Offset(Count2).Text Then