当我点击特定行时,我需要在Excel中弹出一个弹出窗口

时间:2016-02-09 06:37:52

标签: excel excel-vba vba

所以我的想法是,当我点击属于特定列的任何单元格时,应该会输入一个弹出窗口,我可以输入两个值 - 这两个值都应该在实际单击的列旁边的单独列中自动填充同一排。

我知道这听起来微不足道,但我在Excel宏中毫无希望 - 这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

复制以下代码并右键单击工作表标签并选择查看代码并粘贴它。

关闭VBA窗口(Alt + Q关闭VBA窗口)并返回该工作表并检查。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 5 Then
    Dim sF1 As String, sF2 As String

    sF1 = InputBox("Enter Field 1 Value", "Field One Value Req.")
    sF2 = InputBox("Enter Field 2 Value", "Field Two Value Req.")

    With Target
        .Offset(, 1).Value = sF1
        .Offset(, 2).Value = sF2
    End With
End If

End Sub

答案 1 :(得分:0)

关于允许代码在该工作簿的所有工作表中运行,请从工作表模块中删除给定代码,并在Thisworkbook模块中应用以下代码,如下所述。

将Excel VBA代码添加到工作簿/此工作簿模块

  1. 复制您要使用的代码
  2. 选择要存储代码的工作簿
  3. 按住Alt键,然后按F11键,打开Visual Basic 编辑
  4. 在Project Explorer中,找到您的工作簿,然后打开列表 Microsoft Excel对象
  5. 右键单击ThisWorkbook对象,然后选择“查看代码位置” 光标闪烁,选择编辑|粘贴
  6. Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    
    If Target.Column = 5 Then
        Dim sF1 As String, sF2 As String
    
        sF1 = InputBox("Enter Field 1 Value", "Field One Value Req.")
        sF2 = InputBox("Enter Field 2 Value", "Field Two Value Req.")
    
        With Target
            .Offset(, 1).Value = sF1
            .Offset(, 2).Value = sF2
        End With
    End If
    
    End Sub