2015-10-29 3 views
1

В настоящее время мой код открывает форму пользователя, когда нажимается конкретная ячейка. Я хотел бы переместить строку, введенную в текстовое поле в пользовательской форме, для перемещения в ячейку, которая была нажата, чтобы загрузить форму в первую очередь. Это код для вызова формы:Переместить строку из пользовательской формы в активную ячейку, которая называется формой

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, ячейку, на которую было нажата, чтобы сначала открыть форму.

ответ

2

Просто

Selection.Value = UserForm1.Textbox1.value 

должны делать это

+0

OP может поместить это в кнопку выхода, нажав на форму или что-то в этом роде. – MatthewD

+0

Отлично работает! Я думаю, что я слишком усложнял что-то в своей голове – SFro

1

На переднем конце; чтобы открыть форму, измените все, что вы показываете:

if not intersect(target,Range("AY5:AY100") is nothing then UserForm1.Show 

Это удаляет петлю.

На заднем конце вы делаете то, что предложил Dirk, но другим способом, чтобы передать target.address в общей публичной переменной

publicVarRange = Target 

Тогда вместо того, чтобы использовать выбор можно назвать диапазон от переменной.

publicVarRange.value = textbox.value 

Таким образом, если в ходе обмена выбранная ячейка изменится, она все равно поместит значение в правильную ячейку.

 Смежные вопросы

  • Нет связанных вопросов^_^