У меня есть пользовательская форма, которая открывается при изменении ячейки в столбце. Эта пользовательская форма содержит флажки, которые все запускают вторую пользовательскую форму с текстовым полем, которое ищет ячейку на скрытом листе для ее содержимого. (Установленный галочкой флажок определяет, в какой ячейке отображается текстовое поле). Затем пользователь редактирует окно, нажимает кнопку, и новый текст записывается обратно в ту же ячейку.Используйте VLOOKUP для передачи ссылки на ссылку на общедоступную переменную?
Это VBA, когда галочка отмечена галочкой. Он отлично работает. Ура!
Dim vln As Variant
Dim reta As Worksheet
Set reta = ActiveWorkbook.Sheets("RetailerActivity")
Set vln = ActiveCell.Offset(-1, -3)
UserForm2.TextBox1.Text = Application.WorksheetFunction.VLookup(vln, reta.Range("A1:Z100"), 3, False)
UserForm2.TescoSave.Visible = True
UserForm2.Show
End Sub
Когда текстовое поле было отредактировано, я хотел бы записать его обратно в ту же ячейку, из которой она была. Я полагаю, что самый простой способ сделать это, чтобы иметь открытую переменную (как диапазон), и передать результат ВПР в эту переменную, поэтому второй UserForm может иметь линию, которая читает
Private Sub ASave_Click()
publicvariable.Value = TextBox1.Value
userform1.hide
End Sub
легко и приятно , а не снова делать VLookup. Правильно?
В любом случае, я не могу настроить общедоступную переменную как поиск.
Вне любого подразделам я
Public bums As Range
И в приведенном выше коде, после того, как долото, где я настроил текстовое поле, я пытался добавить строку
Set bums = Application.WorksheetFunction.VLookup(vln, reta.Range("A1:Z100"), 3, False)
Но ошибки кода с «несоответствием типа».
Если я пытаюсь
Set bums = Range(Application.WorksheetFunction.VLookup(vln, reta.Range("A1:Z100"), 3, False))
Я получаю метод "Диапазон" объекта "_global" не удалось.
Я код, выбирая биты из Интернета, как вы, вероятно, можете сказать, так что это я не сомневаюсь в полном kludge.
Любые советы были бы оценены по достоинству.