Вставьте текст из текстового поля UserForm в соответствующую ячейку в ActiveCell на другом рабочем листе - PullRequest
0 голосов
/ 24 июня 2019

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

Поэтому я попытался Set acad = ActiveCell.Address и использовать его в ThisWorkbook.Worksheets("Data").Range(acad).Value = "hello"

Вот мое решение:

Private Sub CommandButton25_Click()

Dim r As Range
Dim acad As Range

On Error GoTo noval

Set r = Cells.SpecialCells(xlCellTypeAllValidation)

Set acad = ActiveCell.Address

If Intersect(r, ActiveCell) Is Nothing Then GoTo noval

ActiveCell.Validation.Delete

With ActiveCell.Validation
 .Add Type:=xlValidateInputOnly
 .InputTitle = Me.TextBox1.Value
 .InputMessage = Me.TextBox2.Value
 End With

 ThisWorkbook.Worksheets("Data").Range(acad).Value = "hello"

 ActiveCell.Offset(0, 1).Interior.ColorIndex = 4

Exit Sub

noval:

With ActiveCell.Validation
 .Add Type:=xlValidateInputOnly
 .InputTitle = Me.TextBox1.Value
 .InputMessage = Me.TextBox2.Value
 End With

 ActiveCell.Offset(0, 1).Interior.ColorIndex = 4

On Error GoTo 0

'ActiveCell.Value = ActiveCell.Value & "   " & ""

End Sub

1 Ответ

1 голос
/ 24 июня 2019

Ваше назначение (Set acad = ...) - от строки до объекта, что, вероятно, дает ошибку 424 Требуемый объект, потому что Address возвращает строку, а не объект Range.

Вам, вероятно, понадобится: ThisWorkbook.Worksheets("Data").Range(acad.Address).Value = "hello"

Private Sub CommandButton25_Click()
Dim r As Range
Dim acad As Range

Set r = Cells.SpecialCells(xlCellTypeAllValidation)
Set acad = ActiveCell

With acad.Validation
    .Delete
    .Add Type:=xlValidateInputOnly
    .InputTitle = Me.TextBox1.Value
    .InputMessage = Me.TextBox2.Value
End With
acad.Offset(0, 1).Interior.ColorIndex = 4

ThisWorkbook.Worksheets("Data").Range(acad.Address).Value = "hello"

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...