vba - 删除按钮上方的单行但不允许删除,如果
问题描述
我正在使用表单控制按钮来添加和删除按钮上方的行。每个工作表有几个部分,因此有查找功能。
添加行没有问题。问题是关于删除行......到一个限制。
编码:
Sub Button4_Click()
ActiveSheet.Unprotect
Dim Found As Range
Set Found = Columns("B").EntireRow.Find(what:=" Remove Row ", LookIn:=xlValues, Lookat:=xlWhole)
If Not Found Is Nothing Then
Rows(Found.Row - 1).EntireRow.Delete
End If
ActiveSheet.Protect
End Sub
问题是我不希望最终用户删除包含标题的行。如果Found.Row上方的行包含文本“Travel Expenditures” ,我想添加一些将停止子的内容。
我怀疑这是一个“如果”,但我被困住了。
有什么建议么?
(新手用户)
解决方案
您可以Intersect
使用行和列ActiveSheet.UsedRange
来限制扫描范围
这是一个带有Application.Match
方法的代码,我认为它比 Range.Find() 更快,但不区分大小写:
Sub Button4_Click()
Dim iRow As Variant
iRow = Application.Match(" Remove Row ", Intersect(ActiveSheet.UsedRange, Columns("B")), 0)
If Not IsError(iRow) Then
If IsError(Application.Match("Travel Expenditures", Intersect(ActiveSheet.UsedRange, Rows(iRow - 1).EntireRow), 0)) Then
ActiveSheet.Unprotect
Rows(iRow - 1).Delete
ActiveSheet.Protect
End If
End If
End Sub
推荐阅读
- c# - 一个 Console.WriteLine("text" + function(parameter)); 不起作用,但此指令分为两个 Console.Write 工作正常
- reporting-services - PL SQL:如何在同一个单元格中获得多个值?利斯特格,好的。但
- powershell - 输出文件保持为空
- php - 不允许同一产品超过一次性 CodeIgniter 购物车
- javascript - Javascript 从视图路由到控制器中的错误操作
- php - 迁移数据库时出错(Laravel):表已存在
- c - 如何使用指针将矩阵文本文件读入 C 中的链表?
- reactjs - docker compose 与创建反应应用程序未定义的环境变量
- javascript - 点击按钮时提示输入框内容——React
- python-3.x - 如何通过 Python 执行 Linux 命令来启动和停止 SAP Host Agent?