BeforeRightClick 仅作用于之前点击的单元格
BeforeRightClick acts only on PREVIOUSLY clicked cell
我是 excel VBA 的新手,我搜索了很多帖子和网站,但找不到原因...
我的目标:
右键单击一个单元格,打开一个带有文本框的表单,单击的单元格的地址显示在文本框中。
我试过一些非常标准的代码...像这样:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
With UserForm1.TextBox1
.Text = Target.Address
End With
End Sub
这里是bug(我一步一步的测试结果)
1. I right click A1, the form opens, textbox displays null.
2. I right click D3, the form opens, NOW the textbox displays A1.
3. I right click E4, the form opens, NOW the textbox displays D3.
文本框始终显示之前右击的单元格的地址。我需要文本框显示我刚刚右键单击的地址。
请提供一些关于为什么会发生这种情况以及如何纠正此问题的见解,谢谢大家!
事件例程没问题,target
就是你右击的单元格。但是,您在将地址写入其中之前显示表单,并且 .show
打开表单 modal,这意味着您的代码仅在关闭表单后继续。你只需要恢复这个:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
With UserForm1
.TextBox1.Text = Target.Address
.Show
End With
end Sub
我是 excel VBA 的新手,我搜索了很多帖子和网站,但找不到原因...
我的目标: 右键单击一个单元格,打开一个带有文本框的表单,单击的单元格的地址显示在文本框中。
我试过一些非常标准的代码...像这样:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
With UserForm1.TextBox1
.Text = Target.Address
End With
End Sub
这里是bug(我一步一步的测试结果)
1. I right click A1, the form opens, textbox displays null.
2. I right click D3, the form opens, NOW the textbox displays A1.
3. I right click E4, the form opens, NOW the textbox displays D3.
文本框始终显示之前右击的单元格的地址。我需要文本框显示我刚刚右键单击的地址。
请提供一些关于为什么会发生这种情况以及如何纠正此问题的见解,谢谢大家!
事件例程没问题,target
就是你右击的单元格。但是,您在将地址写入其中之前显示表单,并且 .show
打开表单 modal,这意味着您的代码仅在关闭表单后继续。你只需要恢复这个:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
With UserForm1
.TextBox1.Text = Target.Address
.Show
End With
end Sub