我正在寻找一种我没有 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?)。这是因为对于任何产品编号,行中的相应数据都包含更多的数据(由于工作表的生成方式)。本质上,最接近最后一行的条目是最新的。
希望我能够正确解释现场。但如果不是,并且您愿意接受挑战(我的负担?),我将非常感激。
资历架构