将字符串从用户表单移动到调用该表单的活动单元格
Move string from user form to active cell that called the form
目前,我的代码会在单击特定单元格时打开一个用户表单。我想要的是将输入的字符串移动到用户表单中的文本框中,以移动到首先单击以加载表单的单元格。
这是调用表单的代码:
dim x as integer
For x = 5 To 100
If Target.Address = "$AY$" & x Then
UserForm1.Show
End If
Next x
因此,例如,用户单击单元格 AY10,表单打开,他们将字符串输入到 TextBox1 中。然后,我需要的是当他们单击提交按钮 (Button1) 时,将字符串移至单元格 AY10,即最初单击以打开表单的单元格。
简单
Selection.Value = UserForm1.Textbox1.value
应该做
在前端;要打开表格,请将您显示的所有内容更改为:
if not intersect(target,Range("AY5:AY100") is nothing then UserForm1.Show
这消除了循环。
在后端,您按照德克的建议进行操作,但另一种方法是将 target.address 传递到共享的 public 变量中
publicVarRange = Target
然后您可以从变量调用范围而不是使用选择。
publicVarRange.value = textbox.value
这样,如果在交换期间选定的单元格发生变化,它仍会将值放入正确的单元格中。
目前,我的代码会在单击特定单元格时打开一个用户表单。我想要的是将输入的字符串移动到用户表单中的文本框中,以移动到首先单击以加载表单的单元格。 这是调用表单的代码:
dim x as integer
For x = 5 To 100
If Target.Address = "$AY$" & x Then
UserForm1.Show
End If
Next x
因此,例如,用户单击单元格 AY10,表单打开,他们将字符串输入到 TextBox1 中。然后,我需要的是当他们单击提交按钮 (Button1) 时,将字符串移至单元格 AY10,即最初单击以打开表单的单元格。
简单
Selection.Value = UserForm1.Textbox1.value
应该做
在前端;要打开表格,请将您显示的所有内容更改为:
if not intersect(target,Range("AY5:AY100") is nothing then UserForm1.Show
这消除了循环。
在后端,您按照德克的建议进行操作,但另一种方法是将 target.address 传递到共享的 public 变量中
publicVarRange = Target
然后您可以从变量调用范围而不是使用选择。
publicVarRange.value = textbox.value
这样,如果在交换期间选定的单元格发生变化,它仍会将值放入正确的单元格中。