什么是VBA
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。
怎么使用Excel的VBA来处理处理重复性问题
Excel本身就自带非常强大的一系列函数,可以处理各种各样的问题.
但是在某些情况下,VBA却更符合处理问题的思想,编写也并不困难
使用VBA
在打开Excel后,使用Alt+F11打开面板
原始数据
这是模拟爬取公司信息其中某一列的节选部分.
可以看到,第一行数据本身显示的应该是"融资上市情况",但是混入了"公司人数"的数据信息
接下来使用VBA语句来过滤掉其中的数据
循环语句
首先打开面板,选中worksheet
右边可以看情况使用,一般使用默认 SelectionChange自动 即可
编写循环语句,将第一列的数据全部复制到第三列(是赋值,并不是使用公式)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
/定义一个整型变量/
Dim i As Integer
/整型变量需要小于32767,如果数字过大,使用Long类型;示例中只有16行,所以定义从1到20行,多余为空没有问题/
For i = 1 To 20
/sheet1表的 i 行的第三列的值=sheet1表的 i 行的第一列的值(右边赋给左边)/
Sheet1.Cells(i, 3) = Sheet1.Cells(i, 1)
/进行下一个循环/
Next
End Sub
Dim i As Integer
For i = 1 To 20
Sheet1.Cells(i, 3) = Sheet1.Cells(i, 1)
Next
自动加载,当鼠标点击表任意位置时,就会开始执行语句
判断语句
判断是否3>0,输出一句话
If 3 > 0 Then
MsgBox "3大于0呀"
End If
循环+判断 结合使用
将第一列值为融资情况的列赋值到第三列
Dim i As Integer
For i = 1 To 20
/*如果 i 行第一列的值不包含数字 0 ;
或者说
如果 i 行第一列的值包含数字 0 的数目为0个*/
If InStr(Sheet1.Cells(i, 1), "0") = 0 Then
/*i行第3列的的值为第一列判断为true的值*/
Sheet1.Cells(i, 3) = Sheet1.Cells(i, 1)
End If
Next