
在宏里面进行条件判断是使用IF语句,宏的IF语句与函数不同,例如判断性别的语句这么写:
IF MID(X,17,1) MOD 2=0 THEN Y="女" ELSE Y="男"上面是IF THEN ELSE格式,ELSE可以省略,格式为:
IF THEN
另外,THEN和ELSE后面的语句如果是多个,格式如下:
IF THENELSE
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如何运用宏多条件查询等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)