将字符串从用户表单移动到调用该表单的活动单元格

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

这样,如果在交换期间选定的单元格发生变化,它仍会将值放入正确的单元格中。