在VBA中,假设在A1单元格输入一个数字,然后回车,就启动一个编好的程序进行运算,这个触发事件的程序如何
发布网友
发布时间:2022-05-14 16:00
我来回答
共5个回答
热心网友
时间:2023-10-23 15:41
代码这样写是完全OK的!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Sheets("sheet1").Range("A3").Value = Sheets("sheet1").Range("A1").Value
End If
End Sub
可能楼主的代码放置的位置不对吧,不是像一般宏过程那样放在模块中,而是要放在工作表的代码区里!
可以这样操作:
在Excel中、在需要此功能的那个工作表标签上点右键,选择“查看代码”打开宏编辑器,在右边的空白处贴上上面的代码,就可以了。
有疑问,请Hi我或给我发百度消息
GoodLuck!
热心网友
时间:2023-10-23 15:41
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Call 你的程序
End If
End Sub追问Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Sheets("sheet1").Range("a3").Value = Sheets("sheet1").Range("a1").Value
End If
End Sub
好像并没有反应,
追答在工作表标签处,右键-查看代码
将上述代码粘贴过去
热心网友
时间:2023-10-23 15:42
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
热心网友
时间:2023-10-23 15:42
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" And IsNumeric(Target.Value) Then Call mMacro
End Sub
'说明:另一个程序要用插入模块的方法来制作,这个程序就是引用了mMacro这个宏追问Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Sheets("sheet1").Range("a3").Value = Sheets("sheet1").Range("a1").Value
End If
End Sub
为什么不运行呢?不明白上面的这段程序,能详细解释一下吗
追答经测试,你的代码没问题,只有改动A1单元格时才会触发这个宏
这样写更专业
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
with Sheets("sheet1")
.[a3]=.[a1]
end with
End If
End Sub
热心网友
时间:2023-10-23 15:43
工作表没有KEYPRESS事件,但按下回车时,单位远格的选区会改变,所以可以利用工作表的Worksheet_SelectionChange事件作如下编程:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ThisWorkbook.Save
End Sub