ZiGma

【VBA】利用VBA提取词库重复值

字数统计: 462阅读时长: 2 min
2017/11/09 Share

之前提取过一个小鹤的辅码表,但是在使用过程中很容易和词库的常用词撞车,为了输入效率只能在自定义编码中固定常用词的候选次序,所以想从主码表内提取容易和常用词重复的辅码,并且固定辅码位置,虽然最后发现了辅码表内并不能设置辅码的位置,只能将自定义编码内的词往前移,顶掉辅码。 主码表内有56000多条记录,手动操作标记肯定是不可能的,边用边在App中自定义编码标记虽然可行,但是效率太低,而且有时候多打几个字就会忘了哪个词需要标记,所以还是用手头的Excel来提取数据。

Excel自带的标记重复值

虽然EXCEL有标记重复值的功能,但是也仅仅是标记,并不会写到数据里面。 比如说自定义标记重复值的背景为红色,但是利用Get.Cell公式读取还是原来的背景色。所以想要利用标记重复值,再进行VBA通过背景色删除是无法实现的。

VBA提取

绕了太远果然容易扯着蛋,转念一想利用一个简简单单的For循环和If条件判断就实现了。 逐个匹配判断与下一个的值,重复则输出本行与下一行,再利用代码删除未输出的行,即判断输出列的单元格是否是空白,是则删除整行即可。

1
2
3
4
5
6
7
8
9
10
11
Sub Test()
With Sheet1
For i = 1 to 45000
If .Range("A"&i) = .Range("A"&i+1) Then
.Range("B"&i)=.Range("A"&i)
.Range("B"&i+1)=.Range("A"&i+1)
End If
Next
.Range("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub
CATALOG
  1. 1. Excel自带的标记重复值
  2. 2. VBA提取