如何从一个单元格中创建一个弹出式输入框,并将值右移到下一个单元格?

问题描述 投票:2回答:2

你好,这是我在这里的第一个问题,我是新的VBA编程。我正在寻找一个VBA代码,将允许我当我选择一个单元格的单元格范围内弹出一个输入框,把一些值.例如,当我选择一个单元格从列B弹出一个输入框,需要一个值,去下一个单元格在列C。这是因为在B列中我存储了一个公式(&单元格是锁定的),我不希望被用户删除或更改,虽然我需要他的输入值由公式计算,所以我选择将这个值存储在旁边的一个隐藏单元格中,并将其引用到我的公式中.这怎么可能与VBA?先谢谢你,哈里斯

excel vba excel-vba
2个回答
0
投票

这种技术使用 双击 而不是单次点击。 您的保护必须允许用户双击列中的单元格。B

在工作表代码区输入以下事件宏。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim t As Range, B As Range
    Set t = Target
    Set B = Range("B:B")
    If Intersect(t, B) Is Nothing Then Exit Sub
    Cancel = True
    t.Offset(0, 1).Value = Application.InputBox(Prompt:="Enter data value", Type:=1)
End Sub

因为是工作表代码,所以很容易安装,自动使用。

  1. 右键点击Excel窗口底部附近的选项卡名称。
  2. 选择 "查看代码"--会弹出一个VBE窗口。
  3. 把这些东西粘贴进去,然后关闭VBE窗口。

如果您有任何疑虑,请先在试用工作表上试用。

如果您保存工作簿,宏也会随之保存。如果您使用的是2003年以后的Excel版本,您必须将文件保存为.xlsm而不是.xlsx。

要删除该宏。

  1. 如上所述调出VBE窗口
  2. 扫码
  3. 关闭VBE窗口

要了解更多关于宏的一般情况,请看。

http:/www.mvps.orgdmcritchieexcelgetstarted.htm

http:/msdn.microsoft.comen-uslibraryee814735(v=office.14).aspx。

要了解更多关于事件宏(工作表代码)的信息,请看。

http:/www.mvps.orgdmcritchieexcelevent.htm

必须启用宏才行!


0
投票

我建议使用以下代码。

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("B:B")) Is Nothing Then
            Cells(Target.Row, Target.Column + 1).Value = Application.InputBox("Insert your value please")
        End If
    End If
End Sub

如果你选择了B列中的任何一个单元格,它就会弹出一个输入框,并把值放到C列的单元格中。 你必须把代码直接放到VBA窗口中的特定Sheet中。

© www.soinside.com 2019 - 2024. All rights reserved.