用VBA做关键词分类-代码详解
头条
SEO资讯 2019-02-16 14:00:02 字数:3368

其实不懂关键词优化的原理,现在有很多做关键词优化的工具,不知道是不是应该很少用Excel整理这些了?这个是很早之前给SEO/SEM的同事做的一张表,具体作用大概是这样的:

A列是一堆用户搜索的东西,B列是SEO/SEM同学不知道根据经验还是什么的罗列出来的关键词(小编已经把关键词乱改了,因为不懂,所以不敢直接照搬人家的东西,内行勿喷)。

用VBA做关键词分类-代码详解

需求是要把A列的每一条搜索语句,分别归类到所包含的关键词下面。如A2:深圳市机动车置换和报废有什么区别? 这一句就包含了“置换”和“报废”两个关键词,那这条搜索就被同时归类到【置换】和【报废】关键词下。

先给大家看一下效果。

第一步:在Sheet1添加待分类词组和关键词后,点击分组控件。

用VBA做关键词分类-代码详解

第二步:点完之后自动打开Sheet2,展示结果。第一行是关键词,每一个关键词下面是分组的内容。

用VBA做关键词分类-代码详解

第三步:查看未分配到任何一组的搜索语句,即不包含任意关键词的搜索语句。打开Sheet1,此时可看到,已分类的搜索字体已变成灰色,未分类的仍是黑色。

用VBA做关键词分类-代码详解

之所以说它简陋,想必各位大爷也都看出来了,其实还可以更加完善如:没有撤销本次分组功能,没有统计每个关键词下有多少搜索的功能,也没有统计有多少未被分组的搜索的功能,而且有着各种限制如添加1000个关键词肯定就不行了等等,这些留给大家自行研究吧,或者后期小编有时间继续往下写吧。毕竟当时做这个是本着省事儿且能用就行的标准来的,所以就没太讲究了。

下面是代码,至于怎么打开VBA编辑器之类的,怎样添加对象如一个矩形并且给它指定宏等等,想既然各位大爷都已经是抱着研究代码的态度来的,那这些应该也不需多说。

用VBA做关键词分类-代码详解

下面是详解,都是小编自己的大白话,算是抛砖,各位大爷若有更好的实现方法,还请不啬指教。

Sub kwclassification()

‘定义整数变量i

Dim i As Integer

‘for循环,i从2至shee1第2列最后一个非空单元格的行数值

For i = 2 To Sheets("sheet1").Cells(2, 2).End(xlDown).Row

‘将sheet1中,单元格(i,2) 的值,赋予sheet2的单元格(1,i-1)

Sheets("sheet2").Cells(1, i - 1) = Sheets("sheet1").Cells(i, 2)

‘定义一个字符串变量s1

Dim s1 As String

‘将sheet2中,单元格(1,i-1)的值赋予s1

s1 = Sheets("sheet2").Cells(1, i - 1)

‘ 定义整数变量j,a,a赋值2

Dim j As Integer

Dim a As Integer

a = 2

’嵌套for循环,j从2至sheet1第1列最后一个非空单元格的行数值

For j = 2 To Sheets("sheet1").Cells(2, 1).End(xlDown).Row

‘定义一个字符串变量s

Dim s As String

‘将sheet1中,单元格(j,1)的值赋予s

s = Sheets("sheet1").Cells(j, 1)

‘定义一个布尔变量b

Dim b As Boolean

‘调用Excel函数find,从s中找到s1,再用isnumeric函数判断其返回值,并将结果赋值给b

b = IsNumeric(Application.Find(s1, s))

‘如果b的值是true,则sheet2的单元格(a,i-1)的值等于s

同时sheet1的单元格(j,1)的字体颜色编号等于15

且a+1

否则结束if

If b = True Then

Sheets("sheet2").Cells(a, i - 1) = s

Sheets("sheet1").Cells(j, 1).Font.ColorIndex = 15

a = a + 1

End If

‘进行下一次j内循环

Next j

‘进行下一次i外循环

Next i

‘for循环结束后,选中即打开sheet2

Sheets("sheet2").Select

End Sub

用VBA做关键词分类-代码详解

0人参与回答
  • 未添加任何数据~~

提示信息

联系电话:
1585150508*
QQ交谈:
小编
站长微信:
站长邮箱: service@qingjiuzhubei.com