0

我一直在尝试开发一个宏,如果上一行在某些特定列中为空,则允许我从一行剪切和粘贴一个值或文本到上一行。(如果可能的话,我想在那之后删除空行。)

4137274 20120604 41.6 10.83 超出公差
4137279 20120604 税码缺失
                   55.9 -0.04    
4137271 20120604
                  111.8 -11.26 超出公差
4137325 20120604 税码缺失
                  130.72 0   
4139318 20120605 65.36 0 缺少税码
4139114 20120605
                  223.6 -22.54 超出公差
4139279 20120605
                  111.8 111.8 超出公差
4139151 20120605 65.36 65.36 GR不存在
4140802 20120605 27.95 -0.02 税码缺失
4140732 20120605 27.95 27.95 GR不存在

正如您在上面看到的,一些价格在下一行。我必须处理大量数据,无法手动剪切和粘贴所有数据。有没有办法通过宏或其他方式做到这一点?

4

1 回答 1

2

在不为您编写宏的情况下,这里有一些伪代码和一些指针:

  1. 将所选内容移动到单元格 A1
  2. 测试一个空单元格
    1. 如果为空,则执行Selection.Delete Shift:=xlUp并增加一个empty counter
    2. 如果不为空,则归零empty counter并向下移动
  3. empty counter达到 10(或某个数字表示该列中不再存在数据)时,跳出循环。
  4. 将选择移至 B1 并重复
  5. 重复 C 列等。

与其进行剪切/粘贴来移动值,不如Selection.Delete Shift:=xlUp将其丢弃空单元格并将其下的所有内容向上移动一个单元格。如果您只选择了一个单元格,它不会影响其他列。

于 2012-08-07T18:16:50.717 回答