Пользовательский диапазон ввода: цвет, значение, полужирный: ошибка времени выполнения '1004': приложение определено - ошибка объекта определена - PullRequest
0 голосов
/ 12 апреля 2019

Попытка установить значение, полужирный и цвет пользовательского диапазона ввода

Sub Q3()
  Dim Rng As Range
  Set Rng = Application.InputBox("Range:", Type:=8)
  Set ActiveSheet.Range(Rng).Select.Value = "test"
  Range(Rng).Select.Bold = True
  Range(Rng).Select.Font.Color = -16776961
End Sub

Ошибка 1004 Приложение определено - Ошибка, определенная объектом
Еще одна попытка кода:

Sub Q3()
  Dim Rng As Range
    Set Rng = Application.InputBox("Range:", Type:=8)
    Set ActiveSheet.Range(Rng).Select.Value = "test"
    Range(Rng).Select.Bold = True
    Range(Rng).Select.Font.Color = -16776961
End Sub

Ошибка 1004 Метод 'Range' объекта'_Global 'не выполнен

Ответы [ 2 ]

3 голосов
/ 12 апреля 2019

Ваш синтаксис выключен. Rng уже диапазон, поэтому нет необходимости заключать его в «Range» (или Select).

Возможно, вы захотите сначала проверить, что что-то возвращается в поле ввода.

Sub Q3()

  Dim Rng As Range

  Set Rng = Application.InputBox("Range:", Type:=8)
  With Rng
    .Value = "test"
    .Font.Bold = True
    .Font.Color = -16776961
  End With

End Sub
0 голосов
/ 15 апреля 2019

В дополнение к ответу @SJR вам нужно использовать обработку ошибок, чтобы поймать случай, если пользователь нажимает кнопку Отмена .В противном случае вы столкнетесь с ошибкой, поскольку InputBox возвращает логическое значение False, которое не может быть Set для переменной объекта.

Option Explicit

Public Sub ProcedureQ3()
   Dim Rng As Range
   On Error Resume Next 'next line throws error if user presses cancel
   Set Rng = Application.InputBox("Range:", Type:=8)
   On Error Goto 0 're-activate error reporting

   If Rng Is Nothing Then Exit Sub 'exit if user pressed cancel

   With Rng
       .Value = "test"
       .Font.Bold = True
       .Font.Color = -16776961
   End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...