Excel 怎样用宏进行条件判断

Excel 怎样用宏进行条件判断,第1张

在宏里面进行条件判断是使用IF语句,宏的IF语句与函数不同,例如判断性别的语句这么写:

IF MID(X,17,1) MOD 2=0 THEN Y="女" ELSE Y="男"

上面是IF THEN ELSE格式,ELSE可以省略,格式为:

IF THEN

另外,THEN和ELSE后面的语句如果是多个,格式如下:

IF  THEN 

ELSE

END IF

代码供参考

Sub 条件()

Dim arr

Set sh1 = Worksheets("sheet1")

Set sh2 = Worksheets("sheet2")

r = sh1Range("a" & RowsCount)End(xlUp)Row

arr = sh1Range("a1:a" & r)

brr = sh2Range("a1")CurrentRegion

Set d = CreateObject("scriptingdictionary")

For i = 1 To UBound(brr, 1)

If brr(i, 3) = "" Then

If Not dexists(brr(i, 1)) Then

d(brr(i, 1)) = brr(i, 2)

Else

d(brr(i, 1)) = d(brr(i, 1)) & "、" & brr(i, 2)

End If

End If

Next

ReDim Preserve arr(1 To r, 1 To 2)

arr(1, 2) = sh1Range("b1")

sh1Range("b1")Resize(r, 1)Delete

For i = 2 To r

arr(i, 2) = d(arr(i, 1))

Next

sh1Range("b1")Resize(r, 1) = ApplicationIndex(arr, , 2)

End Sub

1就以某小组学习成绩为例,进行多条件查找,如下图所示,需要查找科目得分。

2在G2单元格输入=SUMPRODUCT((B2:B13=E2)(C2:C13=F2)(D2:D13))

3其表示必须满足B2:B13姓名列等于要查找的姓名E2,C2:C13科目列等于要查找的科目F2时,在D2:D13得分列应该得到的值。

4输入完成后回车得到结果,看到小李的数学得分是67分,与成绩表中对应的一致。

5将E2或者F2中的条件变更试试,将小李改成小红,发现得分列跟随着发生变化。

这个很简单,代码如下:

Sub C5C15_B3B13()

Dim Fo As Object, myName As String

Set Fo = ApplicationFileDialog(msoFileDialogFilePicker)

FoTitle = "请选择您要复制C5:C15数据的文件:"

If FoShow = True Then myName = FoSelectedItems(1)

If myName = "" Then

MsgBox "您取消了文件选择,所以本次处理未完成,将直接退出", vbOKOnly + vbInformation

Exit Sub

End If

Dim wb as Workbook

For Each wb in Workbooks

if wbFullname = myName then Goto wbHasOpened

Next

set wb = workbooksopen(myname)

wbHasOpened:

Dim sh as worksheet

For each sh in wbsheets

if shname = "Voice Quality" Then

[b3:B13] = sh[c5:c15]value

Exit For

end if

Next

Msgbox "处理完成!"

wbclose True

End Sub

1、代码如下:

Private Sub Worksheet_Change(ByVal Target As Range)

If ApplicationIntersect([A1:U50], Target) Is Nothing Then Exit Sub

Call Macros1

End Sub

2、如果是整个工作表,上述代码取消条件那句即可。如果是整个工作簿,则为工作簿的事件,第一行为:Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

3、如果打开文件就运行宏,也是工作簿事件:Private Sub Workbook_Open()

4、要麻烦一些,将两个区域的数据存入数组中进行比较要快一些

Sub test()

Set oExcel = GetObject(, "ExcelApplication")

Set oWb = oExcelWorkbooksOpen("D:\testxls") '写你自己的Excel路径

MsgBox oWbSheets("Sheet1")Range("C5") '取"Sheet1"工作表C5单元格的值

oExcelQuit '退出Excel

End Sub

按 Alt+F11 打开VBE窗口,通过菜单选择“插入”-“模块”,输入以上代码。

这里采用的是后置绑定方法,无需事先加载Excel对象引用库。

如果在此过程中希望Excel窗口不可见,可在调用open方法打开Excel之前设置visible属性:

oExcelVisible = False

以上就是关于Excel 怎样用宏进行条件判断全部的内容,包括:Excel 怎样用宏进行条件判断、excel宏如何条件匹配多条数据、EXCEL如何运用宏多条件查询等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9761366.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存