我有一个小问题,在 Excel 中无法解决。假设我将在 Sheet 1 中导入文本数据,现在数据可以有不同的行,但它们始终每 20 行重复相同的标题以及相同的列数。换句话说,我不知道我将有多少组 20,但是我想从第 10 列复制到另一张 Sheet,仅复制第 2、第 5 和第 10 行。
例如,如果数据表有 20 行,我只对第 2、第 5 和第 10 行感兴趣。如果数据表有 40 行,我感兴趣的是第 2、第 5、第 10、第 22、第 25 和第 30 行。如果 60 --> 第 2、第 5、第 10、第 22、第 25、第 30、第 42、第 45、第 50 行。因此,根据行数,从数据中复制的值会更多,因为每 20 行描述相同的条件,但值不同。
感谢您的帮助和理解。
问候,
答案1
看起来您需要一个简短的 VBA 宏来实现这一点。
假设数据已导入当前工作表,我将通过以下算法解决此问题:
1. 将整个“usedarea”复制到 VBA 二维数组(一条语句)
- 从第 1 行 (r=1) 开始,如果第 X 列中的单元格为空,则退出循环(识别最后一行)。选择第 X 列,这样可以保证对于非空行,该列也非空。
- 将数组 [r+1,10]、[r+4,10] [r+9,10] 中的值复制到第二个“结果”数组
- r = r + 20
- 循环回到步骤 2
退出时,添加一个新工作表并在一个语句中将结果数组复制到其中。
如果您不熟悉如何将单元格区域复制到数组,您可以直接使用单元格引用。要点是使用 DO WHILE 循环,查找最后一个空单元格,并通过行、列引用(例如通过 OFFSET)获取所需的值。