尝试使用excel vba userforms自动执行电子表格中的许多任务。 Sheet1上有一个Button1,它有两个命令。
sub Button1_click()
sheet1.range("a3").select
userform1.show
end sub
作为示例,我们要切换到一个数据输入工作表(sheet2)以将数据值输入到列表中。
为简化此示例并显示我的问题,userform有一个按钮
sub CommandButton1_click()
userform1.hide ' hide the form
sheet2.activate
sheet2.range("b2").select
end sub
我希望能够做的是使用用户表单按钮切换到sheet2,选择b2,并能够立即从那里输入数据。
我得到的是sheet2.range(“b2”)上的选择框但是我从sheet1开始显示颜色!a3,然后是sheet1!b4,...我在sheet1上发生了输入!b2等
显示开始和条目
来自sheet1的条目颜色显示在可见的sheet2上 - 数据未显示
实际数据输入到sheet1而不是sheet2 -
答案 0 :(得分:0)
问题似乎是(正如你在评论中提到的那样),在Button1_Click
结束时,焦点会返回到包含按钮的工作表,即使ActiveSheet
现在是另一张工作表
目前(直到有人提出更好的解决方案)“解决方法”是允许Button1_Click
事件在显示表单之前完成运行。这可以通过将Button1_Click
更改为类似:
Sub Button1_click()
Sheet1.Range("a3").Select
Application.OnTime Now(), "BypassBug"
End Sub
Sub BypassBug()
UserForm1.Show
End Sub