我怎样才能创build一个单元格的popup式input框,并正确的值到下一个?

你好,这是我的第一个问题,我是VBA编程的新手。 我正在寻找一个VBA代码,当我select一个单元格的单元格来popup一个input框来放置一些值时,将允许我。 例如,当我从列B中select一个单元格时,会popup一个input框,需要一个值到列C中的下一个单元格。这是因为在列BI中存储了一个公式(&cell被locking),我不喜欢虽然我需要用公式来计算他的input值,但是我想select把它存储在一个隐藏的单元格中,并将其作为公式的参考。 VBA如何实现? 在此先感谢哈里斯

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

在工作表代码区域中input以下事件macros:

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. select查看代码 – 这会popup一个VBE窗口
  3. 粘贴东西,closuresVBE窗口

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

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除macros:

  1. 调出上面的VBE窗口
  2. 清除代码
  3. closuresVBE窗口

要了解有关macros的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有关事件macros(工作表代码)的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

macros必须启用这个工作!

我会build议使用下面的代码:

 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中select任何单元格并将值放入单元格中,这会popup一个input框。您必须将代码直接放入VBA窗口中的特定工作表。