Excel中vba中thisworkbook的用法Worksheet_Change指定区域外操作提示错误?


项目
04/07/2023
当用户更改工作表中的单元格,或外部链接引起单元格的更改时发生此事件。语法表达式。更改 (目标) 表达 一个代表 Worksheet 对象的变量。参数名称
必需/可选
数据类型
说明
Target
必需
Range
更改的区域。 可以是多个单元格。
返回值Nothing当单元格在重新计算过程中更改时,不会发生该事件。 使用 Calculate 事件捕获工作表重新计算。示例以下代码示例将更改的单元格的颜色设为蓝色。Private Sub Worksheet_Change(ByVal Target as Range)
Target.Font.ColorIndex = 5
End Sub
以下代码示例将验证以下内容:当单元格值发生更改时,更改的单元格是否位于 A 列,并且单元格的更改值是否大于 100。 如果值大于 100,则 B 列中的相邻单元格的颜色将变为红色。Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 Then
ThisRow = Target.Row
If Target.Value > 100 Then
Range("B" & ThisRow).Interior.ColorIndex = 3
Else
Range("B" & ThisRow).Interior.ColorIndex = xlColorIndexNone
End If
End If
End Sub
在单元格中输入数据时,以下代码示例将 A1:A10 区域中的值设为大写。Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:A10")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
'Set the values to be uppercase
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
End Sub
支持和反馈有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。
反馈
查看所有页面反馈
我想为工作簿事件分配sheetname(Sh)和Column range(Target),当工作表中B列的“main”值发生变化时,运行宏Next()Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Sh = "main"
Target = Sh.Range("B:B")
Next()
End SubSh="main"上给我一个错误,它是否会在任何列中的任何单元格上运行发生更改?但我需要显式“主”工作表,列B(任何单元格)更改事件驱动宏?它甚至可能在VBA中?Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents=False
Set Sh = Worksheets("main")
Set Target = Sh.Range("B:B")
Next()
Application.EnableEvents=True
End Sub当更改主工作表中的任何单元格时,名为Next的子过程将运行。但是,我只需要更改B列中的单元格,当发生时,仅然后Next子过程将运行
专栏/ExcelVBA
工作表事件 指定区域被修改时加注时间2023年12月16日 07:04--浏览 ·
--喜欢 ·
--评论网友提问回答网友问题:我准备了一张表工作表:Sheet1然后在VBE编译器中,双击这个工作表,写工作表事件代码解析:范围是D列,如果被修改的单元格不在这个范围,我们就退出这个sub那在这个范围我们才继续向下执行代码,判断被修改的单元格右侧是不是一个空单元格如果是空的,就写上现在的时间和日期但是考虑到你删除后再修改的问题所以在代码中加上被修改的单元格值不为空时我们在D列输入内容,显示效果如下ExcelVBA:https://www.bilibili.com/video/BV1rt4y1a72y目录------2

我要回帖

更多关于 vba中thisworkbook的用法 的文章