【发布时间】:2017-01-12 16:22:38
【问题描述】:
我正在尝试格式化报告并将重要值复制到一张空白纸上。
我正在使用参考主列表来决定哪些信息重要或不重要。每个项目的唯一引用存储在 B 列中名为“主列表”的工作表中,我希望我的宏扫描此列表并查看它是否可以在“原始数据”工作表中找到匹配项并将匹配的行复制到“报告”表。
我所做的尝试可以很好地完成所有初始格式设置,但是当它遇到第一个 While 命令时会绊倒。我已经尝试了几种不同的方法来做到这一点,但我似乎无法让它发挥作用。用莱娅公主的话来说,帮助我 Stack Overflow 你是我唯一的希望
Dim RD As Worksheet, Report As Worksheet, Masterlist As Worksheet
Dim LSearchRow As Integer
Dim LCopytoRow As Integer
Dim rngFound As Range
Dim SearchItem As String
Set RD = Sheets("Raw Data")
Set Report = Sheets("Report")
Set Masterlist = Sheets("Master List")
LCopytoRow = 1
LSearchRow = 1
RD.Select
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Columns("B:D").Select
Selection.Delete Shift:=xlToLeft
Columns("D:Q").Select
Selection.Delete Shift:=xlToLeft
Columns("E:I").Select
Selection.Delete Shift:=xlToLeft
Columns("C:C").Select
Selection.ClearContents
While Len(Range("A" * CStr(LSearchRow)).Value) > 0
SearchItem = Masterlist.Range("B" & k).End(xlUp).Row
If Range("A" & CStr(LSearchRow)).Value = Masterlist.Range("B" & CStr(LSearchRow)).Value Then
Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
Selection.Cut
Report.Select
Rows(CStr(LCopytoRow) & ":" & CStr(LCopytoRow)).Select
ActiveSheet.Paste
LCopytoRow = LCopytoRow + 1
RD.Select
End If
LSearchRow = LSearchRow + 1
Wend
提前致谢!
【问题讨论】:
-
这是因为您从未定义
k所以它在MasterList.Range("B" & k)中查找k=0并且因为单元格 B0 不存在您会收到错误。 -
啊,我最初定义了它,但改变了它的结构方式!我现在将更改它,看看是否有帮助!谢谢!
-
但是您的
SearchItem没有任何意义,因为(如果您将k替换为Masterlist.Rows.Count,您将始终得到相同的Searchitem,但这并不甚至不重要,因为您再也不会引用SearchItem.... 只需删除该行,因为它从未使用或引用过? -
啊,是的,也是第一个问题的副产品。随着整条线的消失,我没有收到任何错误,但没有任何内容复制到新工作表中。我最初想在宏循环上使用 Searchitem 以从列表中查找项目并在原始数据中搜索它,并在找到时复制