Exce表格网

excel里面的vba怎么用if函数(vba中if函数)

来源:www.0djx.com  时间:2023-02-18 19:05   点击:147  编辑:表格网  手机版

1. vba中if函数

If [A1] Like "*上海*" Then [A2] = "上海" ElseIf [A1] Like "*北京*" Then [A2] = "北京" Else Range("A2").Clear End If

2. vba的if

If Left((Cells(i, col)), 2) = 13 Or Left((Cells(i, col)), 2) = 15 Or Left((Cells(i, col)), 2) = 18 Then

改成这样试试:

If Left((Cells(i, col)), 2) = "13" Or Left((Cells(i, col)), 2) = "15" Or Left((Cells(i, col)), 2) = "18" Then

因为left函数取出来的13、15或者18都是字符串,不能直接=13,而是要="13"

3. vba中if函数的语法

定义

在指定区域查找特定信息,查找到第一个值停止查找

表达式

Range.Find(What,[After],[LookIn],[LookAt],[SearchOrder],[SearchDirection],[MatchCase],[MatchByte],[SearchFormat]);

<单元格区域>.Find (要查找的数据,开始查找的位置,查找的范围类型,完全匹配还是部分匹配,行列方式查找,向前向后查找,区分大小写,全角或半角,查找格式)。

参数

名称:What 必选 Variant 要搜索的数据,可为任意数据类型,可使用通配符

名称:After 可选 Variant after必须是区域中的某个单元格,搜索是从after之后开始的,直到方法绕回此单元格时候,才对此单元格进行搜索.如果不指定参数,搜索从区域左上角开始搜索

名称:LookIn 可选 Variant 查找范围,对应[查找与替换]中[查找范围]下拉选项,xlVlues按值查找,xlFormulas按公式查找,xlComments按批注查找

名称:LookAt 可选 Variant 完全匹配还是部分匹配,xlWhole,xlPart

名称:SearchOrder 可选 Variant 按行查找还是按列查找,xlByRows按行查找,xlByColumuns按列查找

名称:SearchaDirection 可选 Variant 搜索的方向,xlNext正向查找,xlPrevious反向查找

MatchCase 可选 Variant True为区分大小写,默认值为False

MatchByte 可选 Variant 只在双字节语言使用,True双字节只与双字节字符匹配;False双字节字符可以对等的单字节字符匹配,是否区分全/半角

SearchFormat 可选 Variant 搜索的格式,true为必须指定的单元格格式,false表示查找的结果可以是任意格式(使用该参数时,必须先行指定格式,Application.FindFormat.属性)

Sub test1()

'

Dim r As Range

Dim s As String

s = "Hello"

Dim a As Range

'查找第一个内容含有vba的单元格

'Set r = Worksheets(1).Cells.Find("vba")

'查找第一个内容精确为vba的单元格

'Set r = Worksheets(1).Cells.Find(what:="vba", lookat:=xlWhole)

'查找第一个包含大写字母"VBA",且单元格为红色的的单元格

'Application.FindFormat.Interior.Color = vbRed

'Set r = Worksheets(1).Cells.Find(what:=s,lookat:=xlPart, MatchCase:=True, Searchformat:=True)

'找到第一个内容为“GWb”的单元格,并且大小写精确匹配。

Set r = Range("I13")

Do

Set r = Worksheets(1).Cells.Find(what:=s, after:=r, lookat:=xlPart, MatchCase:=False, Searchformat:=False, LookIn:=xlValues)

r.Interior.Color = vbBlue

' Set r = Worksheets(1).Cells.Find(what:=s, after:=a, lookat:=xlPart, MatchCase:=True, Searchformat:=False, LookIn:=xlFormulas)

MsgBox (r.Address())

If r.Address = "$I$13" Then Exit Do

Loop While Not r Is Nothing

MsgBox (r.Address())

End Sub

4. vba中if函数循环

1. VBA 局部变量和全局变量

2. VBA 变量赋值

3. VBA 选中一个Sheet

4. VBA 获取单元格内容

5. VBA 获取单元格行号和列号

6. VBA 单元格赋值

7. VBA Range获取单元区间

For Each cellVal In ThisWorkbook.Sheets(1).Range(startColName & rowNum & ":" & endColName & rowNum)

'cellVal即单元格的内容

'cellVal.Column 列号

'cellVal.Row 行号

Next

8. VBA 使用Find搜索单元格内容

在使用Find的时候经常会遇到两个问题: 1. VBA Find搜索失败,抛出异常 使用VBA中Find搜索内容,当搜索失败时,会抛出异常导致程序无法正常处理 解决方法如下,使用Rng存储,然后用If Not Rng Is Nothing Then判断。

Set Rng = ThisWorkbook.Sheets(1).Range(colName & firstRow & ":" & colName & lastRow).Find(styleColor)

If Not Rng Is Nothing Then

’可以找到(这里处理)

End If

Find循环破除 使用VBA中Find搜索内容,会出现循环搜索的问题,此时,可以使用判断是否回到第一次作为判断,断开循环。

Set Rng = ThisWorkbook.Sheets(1).Range(colName & firstRow & ":" & colName & lastRow).Find(styleColor)

If Not Rng Is Nothing Then

rowNum = Rng.Row

firstMatchRow = rowNum

While rowNum

' 这里写处理逻辑

' 继续搜索单店指定店铺

Set Rng = ThisWorkbook.Sheets(1).Range(colStyleColor & firstRow & ":" & colStyleColor & lastRow).Find(styleColor, after:=Range(colStyleColor & rowNum))

If Not Rng Is Nothing Then

rowNum = Rng.Row

End If

' 如果搜索回到第一个,退出函数 '

If firstMatchRow = rowNum Then

rowNum = fasle

End If

Wend

End If

9. VBA While循环退出循环

While i < 100

'这里处理逻辑 '

If i = 20 Then

i = 100 '利用While的破坏条件退出循环 '

End if

Wend

10. VBA 字典类型使用

Dim dic As Object

Set dic = CreateObject("Scripting.Dictionary")

If dic.exists(key) = False Then

dic.Add key, val

End If

' 循环读取字典内容 '

For Each key In dic

val = dic.Item(key)

Next

' 移除一个内容 '

dic.Remove(key)

' 移除全部内容 '

dic.RemoveAll

11. VBA For 循环

For i = 1 To 10

MsgBox i

Next i

12. VBA 获取最大行号

13. VBA If ElseIf

Name = "vba"

If Name = "vba" Then

MsgBox "Yes"

ElseIf Name = "xxx" Then

MsgBox "No"

Else

MsgBox "X"

End If

14. VBA 函数定义

' 1~num求和 '

Function getSum(num)

Sum = 0

For i = 1 To num

Sum = Sum + i

Next i

' 返回值为函数同名变量赋值 '

getSum = Sum

End Function

15. VBA 函数返回值

VBA中的字典无法作为返回值,此时需要借助全局变量传递返回值

Public tmpDic As Object

Function test()

Set tmpDic = CreateObject("Scripting.Dictionary")

tmpDic.Add "a", 5

End Function

16. VBA 退出Sub或Function

使用exit sub或exit function即可

17. VBA 注释

VBA使用单引号作为注释

18. 复制Sheet

19. 添加Sheet

Worksheets.Add().Name = "Sheet xxx"

5. vba中if函数写法

IfCells(i,1)<>""ThenCells(i,6)=Int(Cells(i,5)*Cells(i,4))EndIf

6. vba中if语句

这个其实很容易做,只要用if语句判断第2行是否有数据即可,至于自动编号,可以通过函数取编号开始处至需要自动编号的前一行的最大值然后加1即可实现。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片