如何在单个列中存在重复条目时删除重复行

时间:2017-03-09 23:10:27

标签: excel-vba vba excel

我目前正在尝试创建一个Excel VBA代码,该代码会在单个列中找到重复项时删除整行。我已经创建了代码,但由于某些原因,Excel每次运行时都会崩溃。任何人都可以帮助我吗?

Sub Test()
    For i = 1 To 25
        a = Cells(i, 1).Value
        b = Cells(i + 1, 1).Value
        If a = b Then
            Rows(i + 1).Delete
            i = i - 1
        End If
    Next i
End Sub

2 个答案:

答案 0 :(得分:0)

其中一件事可能会导致此代码出现问题:

1-如果A列中有错误值(即#NA),则比较If a = b将失败,代码将停止并显示错误代码type mismatch

2-代码可以进入无限循环(这就是为什么你认为Excel “崩溃”)因为当你到达范围的末尾时你只得到空行,所以比较{ {1}}总是成功(a = b)因此你会继续删除行并循环.....

因此,正确的方法是应用通常的方法:删除时从下到上循环。

empty = empty

最后,请注意,此代码不会删除任何重复项,只会删除彼此之下的重复项。这似乎是您查看初始代码的目标。

答案 1 :(得分:0)

通过使用以下代码,您可以删除重复的值:

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet"/>
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet"/>
<style>
@import url(https://fonts.googleapis.com/css?family=Raleway:400,500);
body {
  background-color: #9e0e0e;
  font-family: raleway;
  font-weight: 400;
}

.container {
  width: 600px !important;
  margin-top: 200px;
}

#title {
  color: #fff;
  .title-text {
    font-size: 40px;
    text-align: center;
  }
}

#quote-box {
  height: 300px;
  background-color: #ffffff;
  margin-top: 20px;
  margin-left: auto;
  margin-right: auto;
  border-radius: 3px;
}

#button-rows {
  position: absolute;
  bottom: 0.5em;
  left: 1em; right: 1em;
}

#new-quote {
  padding: 1em;
}

.fa-comment {
  color: #ba0e0e;
  text-shadow: 2px 2px 1px #ccc;
}

.fa-comment:hover {
  color: #910a0a;
}

.fa-twitter {
  color: #ba0e0e;
  text-shadow: 2px 2px 1px #ccc;
}

.fa-twitter:hover {
  color: #910a0a;
}
</style>
<div class="container">

  <div class="row justify-content-center">
    <div class="col-xs-12 text-center" id="title"><span class="title-text">Random Quote Machine</span></div>
  </div>
  
  <div class="row">
    
    <div class="col-sm-12 text-center" id="quote-box">
      
      <div id="new-quote">asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf</div>
      
      <div class="row" id="button-rows">
        <div class="col-6 text-left">      
          <i class="fa fa-twitter fa-3x" aria-hidden="true"></i>
        </div>
        <div class="col-6 text-right">
          <i class="fa fa-comment fa-3x" aria-hidden="true"></i>
        </div>         
      </div>
      
    </div>
    
  </div>
  
</div>