首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择区域中的单元格将值输入到另一个工作表中的单元格

选择区域中的单元格将值输入到另一个工作表中的单元格
EN

Stack Overflow用户
提问于 2019-08-24 21:28:01
回答 1查看 191关注 0票数 0

在下面的代码中,当我选择一个区域中的一个单元格时,弹出一个输入框,我的输入被发送到我在工作表2中单击的同一个单元格。我想更进一步。我想完全绕过输入框,只发送值F,而且我只想在单击单元格b2之后执行此操作。因此单元格b2必须作为某种切换来工作(也许在它上面放一个看不见的形状来充当按钮?)

示例1:工作表1,选择单元格B2打开宏,选择范围内的单元格示例: D10在工作表2上的单元格D10中输入字母F,选择单元格B2关闭宏,因此如果我选择单元格D10或该范围内的任何单元格,将不再发生任何事情。如果在宏打开时再次单击单元格,则还需要从D10中删除值F。

代码语言:javascript
复制
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Dim xRtn As Variant
     If Selection.Count = 1 Then
         If Not Intersect(Target, Range("D9:AS20")) Is Nothing Then
             xRtn = Application.InputBox("Insert your value please")
             Sheets("2020").Range(Target.Address).Value = xRtn

         End If
     End If
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-24 22:23:52

未经测试。我不确定我是否理解了你所有的目标。

我认为如果你在你的工作表中添加一个名为“checkbox 1”的复选框(调整大小并存储在你想要的任何地方;也许在单元格B2中),那么下面的代码应该可以工作。

添加复选框的一种方法可能是:Excel > Developer > Insert > Check Box (Form Control) (取决于您的Excel版本)。如果看不到Developer选项卡,您可能需要先使用get it to show

代码语言:javascript
复制
Option Explicit

Private Function GetCheckBox() As Shape
    Set GetCheckBox = Me.Shapes("Check Box 1")
End Function

Private Function IsCheckBoxTicked() As Boolean
    IsCheckBoxTicked = (GetCheckBox.OLEFormat.Object.Value = 1)
End Function

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.CountLarge <> 1 Then Exit Sub
    If Intersect(Target, Me.Range("D9:AS20")) Is Nothing Then Exit Sub

    If IsCheckBoxTicked() Then
        With ThisWorkbook.Worksheets("2020").Range(Target.Address)
            .Value = IIf(.Value = "F", Empty, "F")
        End With
    End If
End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57638401

复制
相关文章

相似问题

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