我有几张复选框,其中勾选时,复选框旁边的单元格值将被复制到文本框中。目前使用ActiveX文本框,下面的代码工作正常
Sub checkBoxHandler()
ActiveSheet.TextBox1.Text = ActiveSheet.TextBox1.Text & " " & ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(1, 1).Value
End Sub
但现在我想使用Userform Textbox,因为它可以浮动在工作簿上。修改下面的代码并不起作用(勾选复选框旁边的单元格值不会复制到Userform文本框中)。
Sub ShowTextBox()
UserForm1.TextBox1.Text = UserForm1.TextBox1.Text & vbLf & ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(1, 1).Value
UserForm1.Show vbModeless
End Sub
有人知道如何使其有效吗?
答案 0 :(得分:0)
我做过类似的项目。我认为userform不支持这种方法。所以我这样做了:
我将activex文本框放在每个工作表上并相应地命名(Textbox1,Textbox2 ..),并将Visibility属性设置为False
我将宏(下面)分配给一个形状,以便将activex文本框的值传递给每张工作表上的Userform:
Sub hocmsummary()
UserForm1.TextBox1.Text = UserForm1.TextBox1.Text & ActiveSheet.TextBox2.Text
End Sub
请记住相应地更改文本框名称。