楼主 罗刚君 |
出几个作业: 1.判断活动工作表是否处于保护状态 2.判断活动单元格是否处于保护状态 3.判断活动单元格是否有公式 4.判断活动工作表是否处于筛选状态 5.判断活动单元格是否于数组区域中 6.判断活动单元格是否为错误值 7.判断“123.xls”工作簿是否处于激活状态 8.判断活动单元格是否处于可见状态 9.判断“456.xls”工作簿中是存在名为“123”的工作表 10.判断活动工作表中是否存在区域数组公式 11.判断活动工作簿是否处于已保存状态(关闭时不会弹出是否需保存的提示框,表示处于已保存状态)
补充: 请直接贴11段代码即可,不用上附件 答案:
11个题目.rar |
2楼 wp8680 |
- '1.判断活动工作表是否处于保护状态ActiveSheet.ProtectContents
- Sub 作业1()
- If ActiveSheet.ProtectContents Then
- MsgBox ActiveSheet.Name & "处于保护状态"
- Else
- MsgBox ActiveSheet.Name & "未保护"
- End If
- End Sub
- '2.判断活动单元格是否处于保护状态Selection.Locked
- Sub 作业2()
- If Selection.Locked Then
- MsgBox Selection.Address & "处于保护状态"
- Else
- MsgBox Selection.Address & "未保护"
- End If
- End Sub
- '3.判断活动单元格是否有公式Selection.HasFormula
- Sub 作业3()
- If Selection.HasFormula Then
- MsgBox Selection.Address & "内有公式"
- Else
- MsgBox Selection.Address & "没有公式"
- End If
- End Sub
- '4.判断活动工作表是否处于筛选状态ActiveSheet.FilterMode
- Sub 作业4()
- If ActiveSheet.FilterMode Then
- MsgBox ActiveSheet.Name & "处于筛选状态"
- Else
- MsgBox ActiveSheet.Name & "未筛选状态"
- End If
- End Sub
- '5.判断活动单元格是否于数组区域中ActiveCell.HasArray
- Sub 作业5()
- If ActiveCell.HasArray Then
- MsgBox ActiveCell.Address & "在数组公式区域中"
- Else
- MsgBox ActiveCell.Address & "不在数组公式区域中"
- End If
- End Sub
- '6.判断活动单元格是否为错误值ActiveCell.Errors.Item(xlEvaluateToError).Value
- Sub 作业6()
- If ActiveCell.Errors.Item(xlEvaluateToError).Value = True Then
- MsgBox ActiveCell.Address & "中有错误值"
- Else
- MsgBox ActiveCell.Address & "中没有错误值"
- End If
- End Sub
- '7.判断“123.xls”工作簿是否处于激活状态
- Sub 作业7()
- 'MsgBox ActiveSheet.Parent.Name
- If ActiveSheet.Parent.Name = "123.xls" Then
- MsgBox "当前工作簿是123.xls"
- Else
- MsgBox "当前工作簿不是123.xls"
- End If
- End Sub
- '8.判断活动单元格是否处于可见状态
- Sub 作业8()
- If ActiveCell.EntireRow.Hidden Or ActiveCell.EntireColumn.Hidden Then
- MsgBox "当前单元格处于隐藏状态"
- Else
- MsgBox "当前单元格处于可见状态"
- End If
- End Sub
- '9.判断“456.xls”工作簿中是存在名为“123”的工作表
- Sub 作业9()
- Dim sh As Worksheet
- On Error Resume Next
- ' If ActiveSheet.Parent.Name = "456.xls" Then
- Set sh = ThisWorkbook.Sheets("123")
- If Err.Number = 0 Then MsgBox "存在123的工作表" Else MsgBox "不存在123的工作表"
- ' Else
- ' MsgBox "请打开工作簿《456.xls》后操作运行本宏"
- ' End If
- End Sub
- '10.判断活动工作表中是否存在区域数组公式
- Sub 作业10()
- Dim rng As Range, k As Boolean
- ActiveSheet.UsedRange.Select
- For Each rng In ActiveSheet.UsedRange
- If rng.HasArray Then MsgBox "表中有区域数组公式": k = True: Exit Sub
- Next rng
- If k = False Then MsgBox "表中没有区域数组公式"
- End Sub
- '11.判断活动工作簿是否处于已保存状态(关闭时不会弹出是否需保存的提示框,表示处于已保存状态)
- Sub 作业11()
- If ActiveWorkbook.Saved Then
- MsgBox "当前工作簿已保存过了。"
- Else
- MsgBox "当前工作簿还没有保存过。"
- End If
- End Sub
|
3楼 kcxs |
客城小生的作业- Sub t1判断活动工作表是否处于保护状态()
- MsgBox IIf(ActiveSheet.ProtectContents, ActiveSheet.Name & "工作表处于保护状态", ActiveSheet.Name & "工作表未保护")
- End Sub
- Sub t2判断活动单元格是否处于保护状态()
- MsgBox IIf(ActiveSheet.ProtectContents And ActiveCell.Locked, ActiveCell.address & "单元格处于保护状态", ActiveCell.address & "单元格未保护")
- End Sub
- Sub t3判断活动单元格是否有公式()
- MsgBox IIf(ActiveCell.HasFormula, ActiveCell.address & "单元格有公式", ActiveCell.address & "单元格没有公式")
- End Sub
- Sub t4判断活动工作表是否处于筛选状态()
- MsgBox IIf(ActiveSheet.FilterMode, ActiveSheet.Name & "工作表处于筛选状态", ActiveSheet.Name & "工作表不处于筛选状态")
- End Sub
- Sub t5判断活动单元格是否于数组区域中()
- MsgBox IIf(ActiveCell.HasArray, ActiveCell.address & "单元格处于数组区域中", ActiveCell.address & "单元格不处于数组区域中")
- End Sub
- Sub t6判断活动单元格是否为错误值()
- MsgBox IIf(IsError(ActiveCell), ActiveCell.address & "单元格为错误值", ActiveCell.address & "单元格不为错误值")
- End Sub
- Sub t7判断工作簿是否处于激活状态()
- MsgBox IIf(ActiveWorkbook.Name = "123.xls", "“123.xls”工作簿处于激活状态", "“123.xls”工作簿不处于激活状态,当前工作薄是“" & ActiveWorkbook.Name & "”")
- End Sub
- Sub t8判断活动单元格是否处于可见状态()
- MsgBox IIf(ActiveCell.Columns.Hidden, ActiveCell.address & "单元格不处于可见状态", ActiveCell.address & "单元格处于可见状态")
- End Sub
- Sub t9判断工作簿中是存在名为123的工作表()
- Dim i As Byte
- For i = 1 To Worksheets.Count
- If Worksheets(i).Name = "123" Then
- MsgBox "名为“123”的工作表位于第" & i & "个工作表"
- Exit Sub
- End If
- Next
- MsgBox "不存在名为“123”的工作表"
- End Sub
- Sub t10判断活动工作表中是否存在区域数组公式()
- MsgBox IIf(ActiveSheet.UsedRange.HasArray, ActiveSheet.Name & "工作表存在区域数组公式", ActiveSheet.Name & "工作表不存在区域数组公式")
- End Sub
- Sub t11判断活动工作簿是否处于已保存状态()
- MsgBox IIf(ActiveWorkbook.Saved = False, ActiveWorkbook.Name & "工作簿没有处于已保存状态", ActiveWorkbook.Name & "工作簿处于已保存状态")
- End Sub
|
4楼 wangxf9209 |
- Sub 宏1()
- If ActiveSheet.ProtectContents Then
- MsgBox "活动工作表为保护状态"
- Else
- MsgBox "活动工作表为非保护状态"
- End If
- End Sub
- Sub 宏2()
- If ActiveCell.Locked Then
- MsgBox "活动单元格为保护状态"
- Else
- MsgBox "活动单元格为非保护状态"
- End If
- End Sub
- Sub 宏3()
- If ActiveCell.Formula <> ActiveCell.Value And Left(ActiveCell.Formula, 1) = "=" Then
- MsgBox "活动单元格内有公式"
- Else
- MsgBox "活动单元格内无公式"
- End If
- End Sub
- Sub 宏4()
- If ActiveSheet.AutoFilterMode Then
- MsgBox "活动工作表处于筛选状态"
- Else
- MsgBox "活动工作表处于非筛选状态"
- End If
- End Sub
5、If Not Intersect(ActiveCell, [A1:E5]) Is Nothing Then '活动单元格处于指定区域中 6、If IsError(ActiveCell) Then '活动单元格内容为错误值 7、If If Workbooks("123.xls") Is ActiveWorkbook Then '工作簿“123.xls”处于激活状态 8、If Not Intersect(ActiveCell, Cells.SpecialCells(xlCellTypeVisible)) Is Nothing Then '活动单元格为可见 或If ActiveCell.EntireRow.Hidden Or ActiveCell.EntireColumn.Hidden Then- Sub 宏9()
- Dim SHT As Worksheet
- For Each SHT In Workbooks("456.XLS").Worksheets '工作簿“456.XLS”须打开
- 'MsgBox SHT.Name
- If SHT.Name = "123" Then
- MsgBox "工作簿中存在名为""123""的工作表"
- N = 1: Exit For
- End If
- Next
- If N = 0 Then MsgBox "工作簿中没有名为""123""的工作表"
- End Sub
- Sub 宏10()
- Dim RNG1 As Range, RNG As Range
- For Each RNG In ActiveSheet.UsedRange '循环检查已用区域的每个单元格
- If RNG.HasArray Then '如果当前循环到的单元格(下称单元格)为数组公式,则继续运行,否则跳转到NEXT
- If RNG1 Is Nothing Then '如果单元格为第一个有数组公式的单元格,将其赋值给变量RNG1
- Set RNG1 = RNG
- Else
- If RNG.Formula = RNG1.Formula Then ‘如果单元格的数组公式与上一数组单元格的公式一样,则继续下面的判断
- If RNG.Address = RNG1.Offset(0, 1).Address Or RNG.Address = RNG1.Offset(1, 0).Address Then MsgBox "活动工作表存在区域数组公式": Exit For '如果单元格和上一数组单元格上下或左右相邻,则弹出提示并结束过程。
- End If
- RNG1 = RNG
- End If
- End If
- Next
- End Sub
11、If ActiveWorkbook.Path = "" Then '活动工作簿没有保存 |
5楼 静思雨 |
1、 Sub test() If ActiveSheet.ProtectContents Or ActiveSheet.ProtectDrawingObjects Then MsgBox "活动工作表已处于保护状态" Else MsgBox "活动工作表没有处于保护状态" End If End Sub
2、 Sub test() If ActiveSheet.ProtectContents And ActiveCell.Locked = True Then MsgBox "活动单元格已处于保护状态" Else MsgBox "活动单元格没有处于保护状态" End If End Sub
3、 Sub test() If ActiveCell.HasFormula Then MsgBox "包含公式" Else MsgBox "不包含公式" End If End Sub
4、 Sub test() If ActiveSheet.AutoFilterMode Then MsgBox "活动工作表处于筛选状态" Else MsgBox "活动工作表没有处于筛选状态" End If End Sub
5、 Sub test() If ActiveCell.HasArray Then MsgBox "活动单元格在数组区域中" Else MsgBox "活动单元格没在数组区域中" End If End Sub 6、 Sub test() If IsError(ActiveCell.Value) Then MsgBox "活动单元格为错误值" Else MsgBox "活动单元格不为错误值" End If End Sub
7、 Sub test() If UCase(Application.ActiveWorkbook.Name) <> UCase("123.xls") Then MsgBox "123.xls 当前没有激活" Else MsgBox "123.xls 当前处于激活状态" End If End Sub
8、 Sub test() If ActiveSheet.Rows(ActiveCell.Row).Hidden Or ActiveSheet.Columns(ActiveCell.Column).Hidden = True Then MsgBox "活动单元格处于隐藏状态" Else MsgBox "活动单元格处于可见状态" End If End Sub
9、 Sub test() Dim sht As Worksheet On Error Resume Next Set sht = Worksheets("123") If sht Is Nothing Then MsgBox "123工作表不存在" Else MsgBox "123工作表存在" End If End Sub
10、 Sub test() If Cells.HasArray Then MsgBox "活动工作表存在数组区域" Else MsgBox "活动工作表不存在数组区域" End If End Sub
11、 Sub test() If ThisWorkbook.Saved Then MsgBox "活动工作簿处于已保存状态" Else MsgBox "活动工作簿未处于已保存状态" End If End Sub |
6楼 liaozhifa33 |
宁静致远
- '1.判断活动工作表是否处于保护状态
- Sub CheckActiveSheetProtectStatus()
- If ActiveSheet.ProtectContents Then MsgBox ActiveSheet.Name & "处于保护状态" Else MsgBox ActiveSheet.Name & "未保护"
- End Sub
- '2.判断活动单元格是否处于保护状态
- Sub CheckActivecellProtectStatus()
- If ActiveCell.AllowEdit = False Then MsgBox ActiveCell.Address(0, 0) & "处于保护状态" Else: MsgBox ActiveCell.Address(0, 0) & "未保护"
- End Sub
- '3.判断活动单元格是否有公式
- Sub CheckActivecellFormula()
- If ActiveCell.HasFormula Then MsgBox ActiveCell.Address(0, 0) & "有公式" Else: MsgBox ActiveCell.Address(0, 0) & "没有公式"
- End Sub
- '4.判断活动工作表是否处于筛选状态
- Sub CheckActiveSheetFilterMode()
- If ActiveSheet.FilterMode = True Then MsgBox ActiveSheet.Name & "处于筛选状态" Else: MsgBox ActiveSheet.Name & "不含筛选"
- End Sub
- '5.判断活动单元格是否于数组区域中
- Sub CheckActiveCellHasArray()
- '老师答案
- On Error Resume Next '当程序出错时,继续执行一句代码
- Dim rng As Range, ArrayCount As Integer '声明两个变量
- Set rng = ActiveCell.CurrentArray '将活动单元格的数组区域赋值给变量rng
- ArrayCount = rng.Cells.Count '将rng的单元格数量赋值给变量ArrayCount
- If ArrayCount > 1 Then '如果ArrayCount大于1
- MsgBox "活动单元格处于数组区域中", vbInformation '提示用户
- Else '否则
- MsgBox "活动单元格不在数组区域中", vbInformation '提示用户
- End If
- End Sub
- '6.判断活动单元格是否为错误值
- Sub CheckActiveCellValue()
- If IsError(ActiveCell) Then MsgBox ActiveCell.Address(0, 0) & "为错误值" Else MsgBox ActiveCell.Address(0, 0) & "值正常"
- End Sub
- '7.判断“123.xls”工作簿是否处于激活状态
- Sub CheckWorkBookActive()
- If ActiveWorkbook.Name = "123.xls" Then MsgBox ActiveWorkbook.Name & "处于激活状态" Else MsgBox "123.xls未激活"
- End Sub
- '8.判断活动单元格是否处于可见状态
- '记得可以获取活动窗口的单元格地址,判断活动单元格是否在此地之内即可,Intersect is nothing
- Sub 判断活动单元格是否处于可见状态()
- '老师答案
- If ActiveCell.EntireRow.Hidden Or ActiveCell.EntireColumn.Hidden Then
- MsgBox "当前单元格处于隐藏状态"
- Else
- If Intersect(ActiveWindow.VisibleRange, ActiveCell) Is Nothing Then
- MsgBox "当前单元格处于隐藏状态"
- Else
- MsgBox "当前单元格处于可见状态"
- End If
- End If
- End Sub
- '9.判断“456.xls”工作簿中是存在名为“123”的工作表
- Sub CheckWorksheetExist()
- Dim sh As Worksheet, wb As Workbook
- On Error Resume Next
- Set wb = Workbooks("456.xls")
- If Err.Number <> 0 Then
- MsgBox "不存在“456.xls”工作簿"
- Else
- Set sh = wb.Sheets("123")
- If Err.Number = 0 Then
- MsgBox "“456.xls”工作簿中存在名为“123”的工作表"
- Else
- MsgBox "“456.xls”工作簿中不存在名为“123”的工作表"
- End If
- End If
- End Sub
- '=====================
- Sub 九判断456xls工作簿中是存在名为123的工作表()
- On Error Resume Next
- If Workbooks("456.xls").Worksheets("123") Is Nothing Then
- MsgBox "工作表不存在"
- Else
- MsgBox "工作表存在"
- End If
- End Sub
- '10.判断活动工作表中是否存在区域数组公式
- sub 判断活动工作表中是否存在区域数组公式()
- Dim rng As Range, ArrarCount As Integer '声明变量
- On Error Resume Next
- For Each rng In ActiveSheet.UsedRange '遍历已用区域
- ArrarCount = rng.CurrentArray.Cells.Count
- If ArrarCount > 1 Then '如果数组区域的单元格数量大于1
- MsgBox "活动工作表存在数组区域", vbInformation '提示用户
- Exit Sub '结束子过程
- End If
- Next rng
- MsgBox "活动工作表不存在数组区域", vbInformation '提示用户
- end sub
- '11.判断活动工作簿是否处于已保存状态(关闭时不会弹出是否需保存的提示框,表示处于已保存状态)
- Sub CheckWorkBookSaved()
- If Application.ThisWorkbook.Saved Then MsgBox "工作簿已经保存" Else MsgBox "工作簿未保存"
- End Sub
|
7楼 mmice |
Sub 判断活动工作表是否处于保护状态1() MsgBox ActiveSheet.ProtectContents End Sub Sub 判断活动单元格是否处于保护状态2() MsgBox ActiveCell.Locked End Sub Sub 判断活动单元格是否有公式3() MsgBox ActiveCell.HasFormula End Sub Sub 判断活动工作表是否处于筛选状态4() MsgBox ActiveSheet.FilterMode End Sub Sub 判断活动单元格是否于数组区域中5() MsgBox IIf(IsArray(ActiveCell), "是", "否") End Sub Sub 判断活动单元格是否为错误值6() 'MsgBox IsError(ActiveCell) '结果是false MsgBox IIf(IsError(ActiveCell), "无错误值", "有错误值") '如果 expression 参数表示一个错误,则 IsError 返回 True;否则返回 False End Sub Sub 判断123xls工作簿是否处于激活状态7() MsgBox ActiveWorkbook.Name <> "123" End Sub
Sub 判断活动单元格是否处于可见状态8() If ActiveCell.EntireRow.Hidden = True Or ActiveCell.EntireColumn.Hidden = True Then MsgBox "活动单元格不可见" Else MsgBox "活动单元格可见" End Sub Sub 判断456xls工作簿中是存在名为123的工作表9() Dim sht As Worksheet On Error Resume Next For Each sht In Workbooks("456.xls").Sheets If sht.Name <> "123" Then MsgBox "123工作表不存在", 64, "提示" Next End Sub Sub 判断活动工作表中是否存在区域数组公式10() MsgBox ActiveCell.HasArray End Sub Sub 判断活动工作簿是否处于已保存状态关闭时不会弹出是否需保存的提示框表示处于已保存状态11() MsgBox Len(ActiveWorkbook.Path) > 1 End Sub
|
8楼 无言的人 |
无言的人 将全部11题并入一个过程汇总- Sub Timu11()
- Rem 01 判断激活工作表是否处于被保护状态
- MsgBox "激活工作表" & ActiveSheet.Name & IIf(ActiveSheet _
- .ProtectScenarios, "处于保护状态", "处于非保护状态")
- Rem 02 判断激活单元格是否处于保护状态
- MsgBox "活动单元格" & ActiveCell.Address(0, 0) & IIf(ActiveCell _
- .Locked, "处于非保护状态", "处于保护状态")
- Rem 03 判断激活单元格是否存在公式
- MsgBox "活动单元格" & ActiveCell.Address(0, 0) & IIf(ActiveCell _
- .HasFormula, "包含有公式", "没有存在公式")
- Rem 04 判断激活工作表是否处于筛选状态
- MsgBox "激活工作表" & ActiveSheet.Name & IIf(ActiveSheet.AutoFilter _
- Is Nothing, "未处于筛选状态", "处于筛选状态")
- Rem 05 判断 激活单元格是否存在区域数组
- MsgBox "激活单元格" & ActiveCell.Address(0, 0) & IIf(ActiveCell. _
- CurrentRegion.HasArray, "处于区域数组范围中", "未处于区域数组范围中")
- Rem 06 判断激活单元格是否存在错误值
- MsgBox "激活单元格" & ActiveCell.Address(0, 0) & IIf(IsError(ActiveCell) _
- , "存在错误值", "未存在错误值")
- Rem 07 判断指定工作表是否激活
- MsgBox IIf(ActiveSheet.Name = "123", "<123> 工作表处于激活状态", "<123> 工作表非激活状态")
- Rem 08 判断激活单元格是否隐藏
- MsgBox IIf(ActiveCell.Height = 0 Or ActiveCell.Width = 0, "处于不可见状态", "处于可见状态")
- Rem 09 判断工作簿中是否存在指定工作表名称
- Dim Sht As Worksheet, Cou As Integer
- For Each Sht In Sheets
- If Sht.Name = "123" Then Cou = 1
- Next Sht
- MsgBox "该工作簿中" & IIf(Cou, "存", "不存") & "在名为<123>的工作表"
- Rem 10 判断工作簿中是否存在区域数组
- Dim Sht1 As Worksheet, Sel As Range, Rng As Range, Cou1 As Integer
- For Each Sht1 In Sheets
- On Error Resume Next '必须错误继续执行
- Sht1.Cells.SpecialCells(xlCellTypeFormulas, 23).Select '定位公式
- '定位不到单元格,则下一个工作表,下一段循环取下一工作表定位公式范围
- ' If Err.Number = 1004 Then Sht1.Next.Activate
- For Each Rng In Selection '定位到单元格执行判断,找到第一个推出内层循环
- If Rng.HasArray = True Then Cou1 = Cou1 + 1: Exit For
- Next Rng
- Next Sht1
- MsgBox "该工作簿中 " & IIf(Cou1, Cou1 & " 个工作表存在区域数组", "不存在区域数组")
- Rem 11 判断工作簿是否已保存
- If ThisWorkbook.Saved = True Then MsgBox "该工作簿未修改或已经保存过,并将关闭!": ThisWorkbook.Close
- End Sub
|
9楼 胖头鱼tx |
1判断活动工作表是否处于保护状态 Sub 判断工作表保护状态()
If Sheets("sheet1").ProtectContents = True Then MsgBox "yes" Else MsgBox "no"
End If
End Sub 2判断活动单元格是否处于保护状态 Sub 工作表() If ActiveCell.Locked = True Then MsgBox "yes" Else MsgBox "no" End If End Sub 3判断活动单元格是否有公式 Sub 工作表() If ActiveCell.Hasformula = True Then MsgBox "yes" Else MsgBox "no" End If End Sub 4判断活动工作表是否处于筛选状态 Sub 工作表() If Sheets("Sheet1").FilterMode = True Then MsgBox "yes" Else MsgBox "no" End If End Sub 5判断活动单元格是否于数组区域中 Sub 工作表() If activecell.HasArray Then MsgBox "yes" Else MsgBox "no" End If End Sub 6判断活动单元格是否为错误值 Sub 工作表() If IsError(ActiveCell) Then MsgBox "yes" Else MsgBox "no" End If End Sub 7判断“123.xls”工作簿是否处于激活状态 Sub 工作表() If ActiveCell.parent.parent.name=123.xls Then MsgBox "yes" Else MsgBox "no" End If End Sub 8判断活动单元格是否处于可见状态 Sub 工作表() If ActiveCell.EntireRow.Hidden Or ActiveCell.EntireColumn.Hidden = True Then MsgBox "yes" Else MsgBox "no" End If End Sub 9判断“456.xls”工作簿中是存在名为“123”的工作表 Sub 工作表1() Workbooks.Open "c:\456.xls" If Sheets("123") Is Nothing Then MsgBox "工作表不存在" Else MsgBox "工作表存在" End If End Sub 10判断活动工作表中是否存在区域数组公式 Sub 工作表ss() For Each cell In ActiveSheet.UsedRange If cell.HasArray Then MsgBox "yes" Exit Sub End If Next End Sub 11判断活动工作簿是否处于已保存状态(关闭时不会弹出是否需保存的提示框,表示处于已保存状
态) Sub 工作表11() Dim wb As Workbook Set wb = Application.ThisWorkbook If wb.Path = "" Then MsgBox "该工作簿未经任何保存" Else Exit Sub End If End Sub |
10楼 wendel |
无心手语- Sub test01()
- If ActiveSheet.ProtectContents Or ActiveSheet.ProtectDrawingObjects Then
- MsgBox "当前工作表保护中", vbInformation
- Else
- MsgBox "当前工作表未保护", vbInformation
- End If
- End Sub
- Sub test02()
- If ActiveSheet.ProtectContents And ActiveCell.Locked = True Then
- MsgBox "活动单元格已处于保护状态", vbInformation
- Else
- MsgBox "活动单元格没有处于保护状态", vbInformation
- End If
- End Sub
- Sub test03()
- If ActiveCell.HasFormula Then
- MsgBox "包含公式", vbInformation
- Else
- MsgBox "不包含公式", vbInformation
- End If
- End Sub
- Sub test04()
- If ActiveSheet.AutoFilterMode Then
- MsgBox "活动工作表处于筛选状态", vbInformation
- Else
- MsgBox "活动工作表没有处于筛选状态", vbInformation
- End If
- End Sub
- Sub test05()
- If ActiveCell.HasArray Then
- MsgBox "活动单元格在数组区域中", vbInformation
- Else
- MsgBox "活动单元格没在数组区域中", vbInformation
- End If
- End Sub
- Sub test06()
- If IsError(ActiveCell.Value) Then
- MsgBox "活动单元格为错误值", vbInformation
- Else
- MsgBox "活动单元格不为错误值", vbInformation
- End If
- End Sub
- Sub test07()
- If UCase(Application.ActiveWorkbook.Name) <> UCase("123.xls") Then
- MsgBox "123.xls 当前没有激活", vbInformation
- Else
- MsgBox "123.xls 当前处于激活状态", vbInformation
- End If
- End Sub
- Sub test08()
- If Not Intersect(ActiveWindow.VisibleRange, ActiveCell) Is Nothing Then
- MsgBox "活动单元格可见", vbInformation
- Else
- MsgBox "活动单元格不可见", vbInformation
- End If
- End Sub
- Sub test09()
- Dim sht As Worksheet
- On Error Resume Next
- Workbooks.Open ThisWorkbook.Path & "\" & "456.xls"
- Set sht = Worksheets("123")
- If sht Is Nothing Then
- MsgBox "123工作表不存在", vbInformation
- Else
- MsgBox "123工作表存在", vbInformation
- End If
- End Sub
- Sub test10()
- Dim Rng As Range, i As Boolean
- For Each Rng In ActiveSheet.UsedRange
- If Rng.HasArray Then
- i = True: Exit For
- End If
- Next
- If i Then
- MsgBox "活动工作表存在区域数组公式", vbInformation
- Else
- MsgBox "活动工作表不存在区域数组公式", vbInformation
- End If
- End Sub
- Sub test11()
- If ThisWorkbook.Saved Then
- MsgBox "活动工作簿已保存", vbInformation
- Else
- MsgBox "活动工作簿未保存", vbInformation
- End If
- End Sub
|
11楼 罗刚君 |
出几个作业: 1.判断活动工作表是否处于保护状态 2.判断活动单元格是否处于保护状态 3.判断活动单元格是否有公式 4.判断活动工作表是否处于筛选状态 5.判断活动单元格是否于数组区域中 6.判断活动单元格是否为错误值 7.判断“123.xls”工作簿是否处于激活状态 8.判断活动单元格是否处于可见状态 9.判断“456.xls”工作簿中是存在名为“123”的工作表 10.判断活动工作表中是否存在区域数组公式 11.判断活动工作簿是否处于已保存状态(关闭时不会弹出是否需保存的提示框,表示处于已保存状态)
补充: 请直接贴11段代码即可,不用上附件 答案:
11个题目.rar |
12楼 wp8680 |
- '1.判断活动工作表是否处于保护状态ActiveSheet.ProtectContents
- Sub 作业1()
- If ActiveSheet.ProtectContents Then
- MsgBox ActiveSheet.Name & "处于保护状态"
- Else
- MsgBox ActiveSheet.Name & "未保护"
- End If
- End Sub
- '2.判断活动单元格是否处于保护状态Selection.Locked
- Sub 作业2()
- If Selection.Locked Then
- MsgBox Selection.Address & "处于保护状态"
- Else
- MsgBox Selection.Address & "未保护"
- End If
- End Sub
- '3.判断活动单元格是否有公式Selection.HasFormula
- Sub 作业3()
- If Selection.HasFormula Then
- MsgBox Selection.Address & "内有公式"
- Else
- MsgBox Selection.Address & "没有公式"
- End If
- End Sub
- '4.判断活动工作表是否处于筛选状态ActiveSheet.FilterMode
- Sub 作业4()
- If ActiveSheet.FilterMode Then
- MsgBox ActiveSheet.Name & "处于筛选状态"
- Else
- MsgBox ActiveSheet.Name & "未筛选状态"
- End If
- End Sub
- '5.判断活动单元格是否于数组区域中ActiveCell.HasArray
- Sub 作业5()
- If ActiveCell.HasArray Then
- MsgBox ActiveCell.Address & "在数组公式区域中"
- Else
- MsgBox ActiveCell.Address & "不在数组公式区域中"
- End If
- End Sub
- '6.判断活动单元格是否为错误值ActiveCell.Errors.Item(xlEvaluateToError).Value
- Sub 作业6()
- If ActiveCell.Errors.Item(xlEvaluateToError).Value = True Then
- MsgBox ActiveCell.Address & "中有错误值"
- Else
- MsgBox ActiveCell.Address & "中没有错误值"
- End If
- End Sub
- '7.判断“123.xls”工作簿是否处于激活状态
- Sub 作业7()
- 'MsgBox ActiveSheet.Parent.Name
- If ActiveSheet.Parent.Name = "123.xls" Then
- MsgBox "当前工作簿是123.xls"
- Else
- MsgBox "当前工作簿不是123.xls"
- End If
- End Sub
- '8.判断活动单元格是否处于可见状态
- Sub 作业8()
- If ActiveCell.EntireRow.Hidden Or ActiveCell.EntireColumn.Hidden Then
- MsgBox "当前单元格处于隐藏状态"
- Else
- MsgBox "当前单元格处于可见状态"
- End If
- End Sub
- '9.判断“456.xls”工作簿中是存在名为“123”的工作表
- Sub 作业9()
- Dim sh As Worksheet
- On Error Resume Next
- ' If ActiveSheet.Parent.Name = "456.xls" Then
- Set sh = ThisWorkbook.Sheets("123")
- If Err.Number = 0 Then MsgBox "存在123的工作表" Else MsgBox "不存在123的工作表"
- ' Else
- ' MsgBox "请打开工作簿《456.xls》后操作运行本宏"
- ' End If
- End Sub
- '10.判断活动工作表中是否存在区域数组公式
- Sub 作业10()
- Dim rng As Range, k As Boolean
- ActiveSheet.UsedRange.Select
- For Each rng In ActiveSheet.UsedRange
- If rng.HasArray Then MsgBox "表中有区域数组公式": k = True: Exit Sub
- Next rng
- If k = False Then MsgBox "表中没有区域数组公式"
- End Sub
- '11.判断活动工作簿是否处于已保存状态(关闭时不会弹出是否需保存的提示框,表示处于已保存状态)
- Sub 作业11()
- If ActiveWorkbook.Saved Then
- MsgBox "当前工作簿已保存过了。"
- Else
- MsgBox "当前工作簿还没有保存过。"
- End If
- End Sub
|
13楼 kcxs |
客城小生的作业- Sub t1判断活动工作表是否处于保护状态()
- MsgBox IIf(ActiveSheet.ProtectContents, ActiveSheet.Name & "工作表处于保护状态", ActiveSheet.Name & "工作表未保护")
- End Sub
- Sub t2判断活动单元格是否处于保护状态()
- MsgBox IIf(ActiveSheet.ProtectContents And ActiveCell.Locked, ActiveCell.address & "单元格处于保护状态", ActiveCell.address & "单元格未保护")
- End Sub
- Sub t3判断活动单元格是否有公式()
- MsgBox IIf(ActiveCell.HasFormula, ActiveCell.address & "单元格有公式", ActiveCell.address & "单元格没有公式")
- End Sub
- Sub t4判断活动工作表是否处于筛选状态()
- MsgBox IIf(ActiveSheet.FilterMode, ActiveSheet.Name & "工作表处于筛选状态", ActiveSheet.Name & "工作表不处于筛选状态")
- End Sub
- Sub t5判断活动单元格是否于数组区域中()
- MsgBox IIf(ActiveCell.HasArray, ActiveCell.address & "单元格处于数组区域中", ActiveCell.address & "单元格不处于数组区域中")
- End Sub
- Sub t6判断活动单元格是否为错误值()
- MsgBox IIf(IsError(ActiveCell), ActiveCell.address & "单元格为错误值", ActiveCell.address & "单元格不为错误值")
- End Sub
- Sub t7判断工作簿是否处于激活状态()
- MsgBox IIf(ActiveWorkbook.Name = "123.xls", "“123.xls”工作簿处于激活状态", "“123.xls”工作簿不处于激活状态,当前工作薄是“" & ActiveWorkbook.Name & "”")
- End Sub
- Sub t8判断活动单元格是否处于可见状态()
- MsgBox IIf(ActiveCell.Columns.Hidden, ActiveCell.address & "单元格不处于可见状态", ActiveCell.address & "单元格处于可见状态")
- End Sub
- Sub t9判断工作簿中是存在名为123的工作表()
- Dim i As Byte
- For i = 1 To Worksheets.Count
- If Worksheets(i).Name = "123" Then
- MsgBox "名为“123”的工作表位于第" & i & "个工作表"
- Exit Sub
- End If
- Next
- MsgBox "不存在名为“123”的工作表"
- End Sub
- Sub t10判断活动工作表中是否存在区域数组公式()
- MsgBox IIf(ActiveSheet.UsedRange.HasArray, ActiveSheet.Name & "工作表存在区域数组公式", ActiveSheet.Name & "工作表不存在区域数组公式")
- End Sub
- Sub t11判断活动工作簿是否处于已保存状态()
- MsgBox IIf(ActiveWorkbook.Saved = False, ActiveWorkbook.Name & "工作簿没有处于已保存状态", ActiveWorkbook.Name & "工作簿处于已保存状态")
- End Sub
|
14楼 wangxf9209 |
- Sub 宏1()
- If ActiveSheet.ProtectContents Then
- MsgBox "活动工作表为保护状态"
- Else
- MsgBox "活动工作表为非保护状态"
- End If
- End Sub
- Sub 宏2()
- If ActiveCell.Locked Then
- MsgBox "活动单元格为保护状态"
- Else
- MsgBox "活动单元格为非保护状态"
- End If
- End Sub
- Sub 宏3()
- If ActiveCell.Formula <> ActiveCell.Value And Left(ActiveCell.Formula, 1) = "=" Then
- MsgBox "活动单元格内有公式"
- Else
- MsgBox "活动单元格内无公式"
- End If
- End Sub
- Sub 宏4()
- If ActiveSheet.AutoFilterMode Then
- MsgBox "活动工作表处于筛选状态"
- Else
- MsgBox "活动工作表处于非筛选状态"
- End If
- End Sub
5、If Not Intersect(ActiveCell, [A1:E5]) Is Nothing Then '活动单元格处于指定区域中 6、If IsError(ActiveCell) Then '活动单元格内容为错误值 7、If If Workbooks("123.xls") Is ActiveWorkbook Then '工作簿“123.xls”处于激活状态 8、If Not Intersect(ActiveCell, Cells.SpecialCells(xlCellTypeVisible)) Is Nothing Then '活动单元格为可见 或If ActiveCell.EntireRow.Hidden Or ActiveCell.EntireColumn.Hidden Then- Sub 宏9()
- Dim SHT As Worksheet
- For Each SHT In Workbooks("456.XLS").Worksheets '工作簿“456.XLS”须打开
- 'MsgBox SHT.Name
- If SHT.Name = "123" Then
- MsgBox "工作簿中存在名为""123""的工作表"
- N = 1: Exit For
- End If
- Next
- If N = 0 Then MsgBox "工作簿中没有名为""123""的工作表"
- End Sub
- Sub 宏10()
- Dim RNG1 As Range, RNG As Range
- For Each RNG In ActiveSheet.UsedRange '循环检查已用区域的每个单元格
- If RNG.HasArray Then '如果当前循环到的单元格(下称单元格)为数组公式,则继续运行,否则跳转到NEXT
- If RNG1 Is Nothing Then '如果单元格为第一个有数组公式的单元格,将其赋值给变量RNG1
- Set RNG1 = RNG
- Else
- If RNG.Formula = RNG1.Formula Then ‘如果单元格的数组公式与上一数组单元格的公式一样,则继续下面的判断
- If RNG.Address = RNG1.Offset(0, 1).Address Or RNG.Address = RNG1.Offset(1, 0).Address Then MsgBox "活动工作表存在区域数组公式": Exit For '如果单元格和上一数组单元格上下或左右相邻,则弹出提示并结束过程。
- End If
- RNG1 = RNG
- End If
- End If
- Next
- End Sub
11、If ActiveWorkbook.Path = "" Then '活动工作簿没有保存 |
15楼 静思雨 |
1、 Sub test() If ActiveSheet.ProtectContents Or ActiveSheet.ProtectDrawingObjects Then MsgBox "活动工作表已处于保护状态" Else MsgBox "活动工作表没有处于保护状态" End If End Sub
2、 Sub test() If ActiveSheet.ProtectContents And ActiveCell.Locked = True Then MsgBox "活动单元格已处于保护状态" Else MsgBox "活动单元格没有处于保护状态" End If End Sub
3、 Sub test() If ActiveCell.HasFormula Then MsgBox "包含公式" Else MsgBox "不包含公式" End If End Sub
4、 Sub test() If ActiveSheet.AutoFilterMode Then MsgBox "活动工作表处于筛选状态" Else MsgBox "活动工作表没有处于筛选状态" End If End Sub
5、 Sub test() If ActiveCell.HasArray Then MsgBox "活动单元格在数组区域中" Else MsgBox "活动单元格没在数组区域中" End If End Sub 6、 Sub test() If IsError(ActiveCell.Value) Then MsgBox "活动单元格为错误值" Else MsgBox "活动单元格不为错误值" End If End Sub
7、 Sub test() If UCase(Application.ActiveWorkbook.Name) <> UCase("123.xls") Then MsgBox "123.xls 当前没有激活" Else MsgBox "123.xls 当前处于激活状态" End If End Sub
8、 Sub test() If ActiveSheet.Rows(ActiveCell.Row).Hidden Or ActiveSheet.Columns(ActiveCell.Column).Hidden = True Then MsgBox "活动单元格处于隐藏状态" Else MsgBox "活动单元格处于可见状态" End If End Sub
9、 Sub test() Dim sht As Worksheet On Error Resume Next Set sht = Worksheets("123") If sht Is Nothing Then MsgBox "123工作表不存在" Else MsgBox "123工作表存在" End If End Sub
10、 Sub test() If Cells.HasArray Then MsgBox "活动工作表存在数组区域" Else MsgBox "活动工作表不存在数组区域" End If End Sub
11、 Sub test() If ThisWorkbook.Saved Then MsgBox "活动工作簿处于已保存状态" Else MsgBox "活动工作簿未处于已保存状态" End If End Sub |
16楼 liaozhifa33 |
宁静致远
- '1.判断活动工作表是否处于保护状态
- Sub CheckActiveSheetProtectStatus()
- If ActiveSheet.ProtectContents Then MsgBox ActiveSheet.Name & "处于保护状态" Else MsgBox ActiveSheet.Name & "未保护"
- End Sub
- '2.判断活动单元格是否处于保护状态
- Sub CheckActivecellProtectStatus()
- If ActiveCell.AllowEdit = False Then MsgBox ActiveCell.Address(0, 0) & "处于保护状态" Else: MsgBox ActiveCell.Address(0, 0) & "未保护"
- End Sub
- '3.判断活动单元格是否有公式
- Sub CheckActivecellFormula()
- If ActiveCell.HasFormula Then MsgBox ActiveCell.Address(0, 0) & "有公式" Else: MsgBox ActiveCell.Address(0, 0) & "没有公式"
- End Sub
- '4.判断活动工作表是否处于筛选状态
- Sub CheckActiveSheetFilterMode()
- If ActiveSheet.FilterMode = True Then MsgBox ActiveSheet.Name & "处于筛选状态" Else: MsgBox ActiveSheet.Name & "不含筛选"
- End Sub
- '5.判断活动单元格是否于数组区域中
- Sub CheckActiveCellHasArray()
- '老师答案
- On Error Resume Next '当程序出错时,继续执行一句代码
- Dim rng As Range, ArrayCount As Integer '声明两个变量
- Set rng = ActiveCell.CurrentArray '将活动单元格的数组区域赋值给变量rng
- ArrayCount = rng.Cells.Count '将rng的单元格数量赋值给变量ArrayCount
- If ArrayCount > 1 Then '如果ArrayCount大于1
- MsgBox "活动单元格处于数组区域中", vbInformation '提示用户
- Else '否则
- MsgBox "活动单元格不在数组区域中", vbInformation '提示用户
- End If
- End Sub
- '6.判断活动单元格是否为错误值
- Sub CheckActiveCellValue()
- If IsError(ActiveCell) Then MsgBox ActiveCell.Address(0, 0) & "为错误值" Else MsgBox ActiveCell.Address(0, 0) & "值正常"
- End Sub
- '7.判断“123.xls”工作簿是否处于激活状态
- Sub CheckWorkBookActive()
- If ActiveWorkbook.Name = "123.xls" Then MsgBox ActiveWorkbook.Name & "处于激活状态" Else MsgBox "123.xls未激活"
- End Sub
- '8.判断活动单元格是否处于可见状态
- '记得可以获取活动窗口的单元格地址,判断活动单元格是否在此地之内即可,Intersect is nothing
- Sub 判断活动单元格是否处于可见状态()
- '老师答案
- If ActiveCell.EntireRow.Hidden Or ActiveCell.EntireColumn.Hidden Then
- MsgBox "当前单元格处于隐藏状态"
- Else
- If Intersect(ActiveWindow.VisibleRange, ActiveCell) Is Nothing Then
- MsgBox "当前单元格处于隐藏状态"
- Else
- MsgBox "当前单元格处于可见状态"
- End If
- End If
- End Sub
- '9.判断“456.xls”工作簿中是存在名为“123”的工作表
- Sub CheckWorksheetExist()
- Dim sh As Worksheet, wb As Workbook
- On Error Resume Next
- Set wb = Workbooks("456.xls")
- If Err.Number <> 0 Then
- MsgBox "不存在“456.xls”工作簿"
- Else
- Set sh = wb.Sheets("123")
- If Err.Number = 0 Then
- MsgBox "“456.xls”工作簿中存在名为“123”的工作表"
- Else
- MsgBox "“456.xls”工作簿中不存在名为“123”的工作表"
- End If
- End If
- End Sub
- '=====================
- Sub 九判断456xls工作簿中是存在名为123的工作表()
- On Error Resume Next
- If Workbooks("456.xls").Worksheets("123") Is Nothing Then
- MsgBox "工作表不存在"
- Else
- MsgBox "工作表存在"
- End If
- End Sub
- '10.判断活动工作表中是否存在区域数组公式
- sub 判断活动工作表中是否存在区域数组公式()
- Dim rng As Range, ArrarCount As Integer '声明变量
- On Error Resume Next
- For Each rng In ActiveSheet.UsedRange '遍历已用区域
- ArrarCount = rng.CurrentArray.Cells.Count
- If ArrarCount > 1 Then '如果数组区域的单元格数量大于1
- MsgBox "活动工作表存在数组区域", vbInformation '提示用户
- Exit Sub '结束子过程
- End If
- Next rng
- MsgBox "活动工作表不存在数组区域", vbInformation '提示用户
- end sub
- '11.判断活动工作簿是否处于已保存状态(关闭时不会弹出是否需保存的提示框,表示处于已保存状态)
- Sub CheckWorkBookSaved()
- If Application.ThisWorkbook.Saved Then MsgBox "工作簿已经保存" Else MsgBox "工作簿未保存"
- End Sub
|
17楼 mmice |
Sub 判断活动工作表是否处于保护状态1() MsgBox ActiveSheet.ProtectContents End Sub Sub 判断活动单元格是否处于保护状态2() MsgBox ActiveCell.Locked End Sub Sub 判断活动单元格是否有公式3() MsgBox ActiveCell.HasFormula End Sub Sub 判断活动工作表是否处于筛选状态4() MsgBox ActiveSheet.FilterMode End Sub Sub 判断活动单元格是否于数组区域中5() MsgBox IIf(IsArray(ActiveCell), "是", "否") End Sub Sub 判断活动单元格是否为错误值6() 'MsgBox IsError(ActiveCell) '结果是false MsgBox IIf(IsError(ActiveCell), "无错误值", "有错误值") '如果 expression 参数表示一个错误,则 IsError 返回 True;否则返回 False End Sub Sub 判断123xls工作簿是否处于激活状态7() MsgBox ActiveWorkbook.Name <> "123" End Sub
Sub 判断活动单元格是否处于可见状态8() If ActiveCell.EntireRow.Hidden = True Or ActiveCell.EntireColumn.Hidden = True Then MsgBox "活动单元格不可见" Else MsgBox "活动单元格可见" End Sub Sub 判断456xls工作簿中是存在名为123的工作表9() Dim sht As Worksheet On Error Resume Next For Each sht In Workbooks("456.xls").Sheets If sht.Name <> "123" Then MsgBox "123工作表不存在", 64, "提示" Next End Sub Sub 判断活动工作表中是否存在区域数组公式10() MsgBox ActiveCell.HasArray End Sub Sub 判断活动工作簿是否处于已保存状态关闭时不会弹出是否需保存的提示框表示处于已保存状态11() MsgBox Len(ActiveWorkbook.Path) > 1 End Sub
|
18楼 无言的人 |
无言的人 将全部11题并入一个过程汇总- Sub Timu11()
- Rem 01 判断激活工作表是否处于被保护状态
- MsgBox "激活工作表" & ActiveSheet.Name & IIf(ActiveSheet _
- .ProtectScenarios, "处于保护状态", "处于非保护状态")
- Rem 02 判断激活单元格是否处于保护状态
- MsgBox "活动单元格" & ActiveCell.Address(0, 0) & IIf(ActiveCell _
- .Locked, "处于非保护状态", "处于保护状态")
- Rem 03 判断激活单元格是否存在公式
- MsgBox "活动单元格" & ActiveCell.Address(0, 0) & IIf(ActiveCell _
- .HasFormula, "包含有公式", "没有存在公式")
- Rem 04 判断激活工作表是否处于筛选状态
- MsgBox "激活工作表" & ActiveSheet.Name & IIf(ActiveSheet.AutoFilter _
- Is Nothing, "未处于筛选状态", "处于筛选状态")
- Rem 05 判断 激活单元格是否存在区域数组
- MsgBox "激活单元格" & ActiveCell.Address(0, 0) & IIf(ActiveCell. _
- CurrentRegion.HasArray, "处于区域数组范围中", "未处于区域数组范围中")
- Rem 06 判断激活单元格是否存在错误值
- MsgBox "激活单元格" & ActiveCell.Address(0, 0) & IIf(IsError(ActiveCell) _
- , "存在错误值", "未存在错误值")
- Rem 07 判断指定工作表是否激活
- MsgBox IIf(ActiveSheet.Name = "123", "<123> 工作表处于激活状态", "<123> 工作表非激活状态")
- Rem 08 判断激活单元格是否隐藏
- MsgBox IIf(ActiveCell.Height = 0 Or ActiveCell.Width = 0, "处于不可见状态", "处于可见状态")
- Rem 09 判断工作簿中是否存在指定工作表名称
- Dim Sht As Worksheet, Cou As Integer
- For Each Sht In Sheets
- If Sht.Name = "123" Then Cou = 1
- Next Sht
- MsgBox "该工作簿中" & IIf(Cou, "存", "不存") & "在名为<123>的工作表"
- Rem 10 判断工作簿中是否存在区域数组
- Dim Sht1 As Worksheet, Sel As Range, Rng As Range, Cou1 As Integer
- For Each Sht1 In Sheets
- On Error Resume Next '必须错误继续执行
- Sht1.Cells.SpecialCells(xlCellTypeFormulas, 23).Select '定位公式
- '定位不到单元格,则下一个工作表,下一段循环取下一工作表定位公式范围
- ' If Err.Number = 1004 Then Sht1.Next.Activate
- For Each Rng In Selection '定位到单元格执行判断,找到第一个推出内层循环
- If Rng.HasArray = True Then Cou1 = Cou1 + 1: Exit For
- Next Rng
- Next Sht1
- MsgBox "该工作簿中 " & IIf(Cou1, Cou1 & " 个工作表存在区域数组", "不存在区域数组")
- Rem 11 判断工作簿是否已保存
- If ThisWorkbook.Saved = True Then MsgBox "该工作簿未修改或已经保存过,并将关闭!": ThisWorkbook.Close
- End Sub
|
19楼 胖头鱼tx |
1判断活动工作表是否处于保护状态 Sub 判断工作表保护状态()
If Sheets("sheet1").ProtectContents = True Then MsgBox "yes" Else MsgBox "no"
End If
End Sub 2判断活动单元格是否处于保护状态 Sub 工作表() If ActiveCell.Locked = True Then MsgBox "yes" Else MsgBox "no" End If End Sub 3判断活动单元格是否有公式 Sub 工作表() If ActiveCell.Hasformula = True Then MsgBox "yes" Else MsgBox "no" End If End Sub 4判断活动工作表是否处于筛选状态 Sub 工作表() If Sheets("Sheet1").FilterMode = True Then MsgBox "yes" Else MsgBox "no" End If End Sub 5判断活动单元格是否于数组区域中 Sub 工作表() If activecell.HasArray Then MsgBox "yes" Else MsgBox "no" End If End Sub 6判断活动单元格是否为错误值 Sub 工作表() If IsError(ActiveCell) Then MsgBox "yes" Else MsgBox "no" End If End Sub 7判断“123.xls”工作簿是否处于激活状态 Sub 工作表() If ActiveCell.parent.parent.name=123.xls Then MsgBox "yes" Else MsgBox "no" End If End Sub 8判断活动单元格是否处于可见状态 Sub 工作表() If ActiveCell.EntireRow.Hidden Or ActiveCell.EntireColumn.Hidden = True Then MsgBox "yes" Else MsgBox "no" End If End Sub 9判断“456.xls”工作簿中是存在名为“123”的工作表 Sub 工作表1() Workbooks.Open "c:\456.xls" If Sheets("123") Is Nothing Then MsgBox "工作表不存在" Else MsgBox "工作表存在" End If End Sub 10判断活动工作表中是否存在区域数组公式 Sub 工作表ss() For Each cell In ActiveSheet.UsedRange If cell.HasArray Then MsgBox "yes" Exit Sub End If Next End Sub 11判断活动工作簿是否处于已保存状态(关闭时不会弹出是否需保存的提示框,表示处于已保存状
态) Sub 工作表11() Dim wb As Workbook Set wb = Application.ThisWorkbook If wb.Path = "" Then MsgBox "该工作簿未经任何保存" Else Exit Sub End If End Sub |
20楼 wendel |
无心手语- Sub test01()
- If ActiveSheet.ProtectContents Or ActiveSheet.ProtectDrawingObjects Then
- MsgBox "当前工作表保护中", vbInformation
- Else
- MsgBox "当前工作表未保护", vbInformation
- End If
- End Sub
- Sub test02()
- If ActiveSheet.ProtectContents And ActiveCell.Locked = True Then
- MsgBox "活动单元格已处于保护状态", vbInformation
- Else
- MsgBox "活动单元格没有处于保护状态", vbInformation
- End If
- End Sub
- Sub test03()
- If ActiveCell.HasFormula Then
- MsgBox "包含公式", vbInformation
- Else
- MsgBox "不包含公式", vbInformation
- End If
- End Sub
- Sub test04()
- If ActiveSheet.AutoFilterMode Then
- MsgBox "活动工作表处于筛选状态", vbInformation
- Else
- MsgBox "活动工作表没有处于筛选状态", vbInformation
- End If
- End Sub
- Sub test05()
- If ActiveCell.HasArray Then
- MsgBox "活动单元格在数组区域中", vbInformation
- Else
- MsgBox "活动单元格没在数组区域中", vbInformation
- End If
- End Sub
- Sub test06()
- If IsError(ActiveCell.Value) Then
- MsgBox "活动单元格为错误值", vbInformation
- Else
- MsgBox "活动单元格不为错误值", vbInformation
- End If
- End Sub
- Sub test07()
- If UCase(Application.ActiveWorkbook.Name) <> UCase("123.xls") Then
- MsgBox "123.xls 当前没有激活", vbInformation
- Else
- MsgBox "123.xls 当前处于激活状态", vbInformation
- End If
- End Sub
- Sub test08()
- If Not Intersect(ActiveWindow.VisibleRange, ActiveCell) Is Nothing Then
- MsgBox "活动单元格可见", vbInformation
- Else
- MsgBox "活动单元格不可见", vbInformation
- End If
- End Sub
- Sub test09()
- Dim sht As Worksheet
- On Error Resume Next
- Workbooks.Open ThisWorkbook.Path & "\" & "456.xls"
- Set sht = Worksheets("123")
- If sht Is Nothing Then
- MsgBox "123工作表不存在", vbInformation
- Else
- MsgBox "123工作表存在", vbInformation
- End If
- End Sub
- Sub test10()
- Dim Rng As Range, i As Boolean
- For Each Rng In ActiveSheet.UsedRange
- If Rng.HasArray Then
- i = True: Exit For
- End If
- Next
- If i Then
- MsgBox "活动工作表存在区域数组公式", vbInformation
- Else
- MsgBox "活动工作表不存在区域数组公式", vbInformation
- End If
- End Sub
- Sub test11()
- If ThisWorkbook.Saved Then
- MsgBox "活动工作簿已保存", vbInformation
- Else
- MsgBox "活动工作簿未保存", vbInformation
- End If
- End Sub
|