首页 > 解决方案 > VBA - 帮助调试出错的复制/粘贴

问题描述

在我的一小部分代码中发生了一些神秘的事情,我无法弄清楚出了什么问题。这是问题所在(我跳过了顶部的工作表/报告定义):

Set FoundRow = sh_NYlandsum.Columns(1).Find("SUM", lookat:=xlWhole, LookIn:=xlValues)
    FoundRow.Offset(, 1).Resize(1, 33).Copy
        sh_Data3.Range("C" & sh_Data3.Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False

Set wb_rapp = Workbooks.Open(fPath & "\R2\" & "Gruppe1.xls")   
    FoundRow = wb_rapp.Sheets(1).Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Find("SUM", Cells(1, 1), MatchCase:=True).Row
    Range("S" & FoundRow & ":AE" & FoundRow).Copy
FoundRow = sh_SumGrupper.Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Find("G1", Cells(1, 1)).Row    
sh_SumGrupper.Range("B" & FoundRow & ":N" & FoundRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
wb_rapp.Close False

我一直在使用 F8 调试代码,这就是正在发生的事情:

第一位转到工作表 NYlandsum (ThisWB),在 A 行中找到单词“SUM”,并复制 B-AH 列。数据被传递到工作表“Data3”(ThisWB)列 C:AI(第一个可用行)。工作得很好。

下一位打开一个报告,在 A 行中找到单词“SUM”,并复制 S-AE 列。数据被传递到工作表“SumGrupper”(ThisWB)中,它在 A 列中找到包含“G1”的行,并将数据放入 B:N 列。工作得很好。

但是...,当最后一位完成时,代码还从工作表“SumGrupper”中获取了行号 - 它已经传递了数据(在列 A =行号 5中保存“G1”的行),并替换了“来自工作表“NYlandSUM”的 A 列的 SUM”,值为“5”。这……怎么会这样?任何人都可以发现问题所在,以及如何解决它?

标签: vbaexcelcopy-paste

解决方案


推荐阅读