你好,这是我在这里的第一个问题,我是新的VBA编程。我正在寻找一个VBA代码,将允许我当我选择一个单元格的单元格范围内弹出一个输入框,把一些值.例如,当我选择一个单元格从列B弹出一个输入框,需要一个值,去下一个单元格在列C。这是因为在B列中我存储了一个公式(&单元格是锁定的),我不希望被用户删除或更改,虽然我需要他的输入值由公式计算,所以我选择将这个值存储在旁边的一个隐藏单元格中,并将其引用到我的公式中.这怎么可能与VBA?先谢谢你,哈里斯
这种技术使用 双击 而不是单次点击。 您的保护必须允许用户双击列中的单元格。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
因为是工作表代码,所以很容易安装,自动使用。
如果您有任何疑虑,请先在试用工作表上试用。
如果您保存工作簿,宏也会随之保存。如果您使用的是2003年以后的Excel版本,您必须将文件保存为.xlsm而不是.xlsx。
要删除该宏。
要了解更多关于宏的一般情况,请看。
http:/www.mvps.orgdmcritchieexcelgetstarted.htm
和
http:/msdn.microsoft.comen-uslibraryee814735(v=office.14).aspx。
要了解更多关于事件宏(工作表代码)的信息,请看。
http:/www.mvps.orgdmcritchieexcelevent.htm
必须启用宏才行!
我建议使用以下代码。
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中。