首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA双击功能,可交替两篇文本

Excel VBA双击功能,可交替两篇文本
EN

Stack Overflow用户
提问于 2016-12-13 13:04:14
回答 1查看 681关注 0票数 0

我试图在一个单元格中创建Excel代码,该单元格通过双击单元格来交替“in”和“OUT”。看起来我必须使用:Private Worksheet_BeforeDoubleClick(ByVal Target作为范围,cancel作为布尔值)在Sheet1中,而不是在模块中。

在相同的Sheet1中,我已经在另一个单元格中具有相同的功能,它交替执行“In Operation”、“Failing”和“Not”,这非常有效。

当我试图复制代码并以不同的范围名称执行时,我会得到“检测到的模糊名称”的编译错误消息。

如何避免错误消息并使其工作?

任何帮助都很感激。

EN

回答 1

Stack Overflow用户

发布于 2016-12-13 14:00:32

Workbook代码解调器接收所有工作表的事件。

工作簿码解调器

代码语言:javascript
复制
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    If Sh Is Sheet1 Then
        If Not Intersect(Target, Range("A1:A5")) Is Nothing Then
            Target.Value = IIf(Target.Value = "OUT", "IN", "OUT")
            Cancel = True
        End If
    End If
End Sub

或者,您只需将DoubleCLick事件参数传递给sub。请确保传递Cancel ByRef,以便可以阻止对单元格进行编辑。

Sheet1共解调

子Sheet1BeforeDoubleClick(ByVal目标为范围,ByRef Cancel为布尔)

代码语言:javascript
复制
If Not Intersect(Target, Range("A1:A5")) Is Nothing Then
    Target.Value = IIf(Target.Value = "OUT", "IN", "OUT")
    Cancel = True
End If

结束子对象

标准共解调

子Sheet1BeforeDoubleClick(ByVal目标为范围,ByRef Cancel为布尔)

代码语言:javascript
复制
If Not Intersect(Target, Range("A1:A5")) Is Nothing Then
    Target.Value = IIf(Target.Value = "OUT", "IN", "OUT")
    Cancel = True
End If

结束子对象

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41121860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档