【发布时间】:2012-05-07 05:59:08
【问题描述】:
我正在寻找一种我自己不具备 VBA 知识来编写脚本的算法。所以我被困住了。这不是因为缺乏努力尝试,因为我已经尝试过了(另外,这段代码是我更大的 VBA 代码的最后一部分)我只是缺乏知识/经验/技能......
基本上,我有一个 Excel 文件。在这个文件中有一个工作表,“sheet1”。 Sheet1 包含多行数据。 sheet1 中包含的行数可以在 1 到 n 之间变化。有时,我可能有 50 个,而其他时候可能有 30 个,等等。一致的是本书的布局,即我在 A 列中有代码,用于标识我的数据库中的产品。
我想做的是这样的:
1. 扫描工作表中的空行(由于工作簿的生成方式,我有时会有空行)并将其删除。这些空白行有时位于数据行之间,而有时可能位于工作表末尾。
2. 删除空白行后,找到最后使用的行。将其存储到变量中。我发现这段代码对此很有用:
mylastrow = myBook.Sheets("Results").Cells.Find(what:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
3. 从 (2) 中确定的行开始,我想取 A(x where x = mylastrow) 中的产品代码并找到它的任何其他出现(在 A 列中) .如果找到,则删除与其对应的整行。重要的是,这个循环必须反向。例如,假设mylastrow = 40,循环将需要从 A40 开始,并且在下一次迭代中执行 A39(或者如果一行已被删除,则为 38?)。这是因为对于任何产品编号,行中的相应数据都包含更多的数据(由于工作表的生成方式)。本质上,最接近最后一行的条目是最新的。
希望我能够正确解释现场。但如果不是,并且您愿意接受挑战(我的负担?),我将非常感激。
QF
【问题讨论】:
标签: vba excel excel-2011