VBA - Ошибка времени выполнения '1004' - Ошибка метода 'Range' объекта'_Global ' - PullRequest
0 голосов
/ 26 апреля 2018

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

У меня есть фрагмент кода VBA со строкой, возвращающей ошибку:

Sub test()
Dim rng As Range

Set rng = Application.InputBox("Select range: ", "Select range", Type:=8)

MsgBox (Range("rng").Rows.Count)

End Sub

MyНамерение состоит в том, чтобы предложить пользователю выбрать диапазон и посчитать количество строк в этом диапазоне.

Если я предварительно определю диапазон имен «rng» вместо выбора диапазона во время выполнения, как показано в приведенном ниже коде, он вернет количество строк без ошибок.

Sub test()
Dim rng As Range

MsgBox (Range("rng").Rows.Count)

End Sub

Можеткто-то, пожалуйста, сообщите мне проблему с диапазоном, выбранным пользователем, чтобы он не мог вернуть количество строк?Разве диапазон "rng", определенный пользователем, не имеет свойства "Rows"?

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

rng уже является допустимым диапазоном, и у него есть собственные свойства Rows, к которым вы можете получить доступ следующим образом ...

Кроме того, рассмотрим случай, если пользователь не выберет какой-либо диапазон, и нажмите Отмена наInputBox.

Dim rng As Range

On Error Resume Next
Set rng = Application.InputBox("Select range: ", "Select range", Type:=8)
On Error GoTo 0
If Not rng Is Nothing Then MsgBox rng.Rows.Count
0 голосов
/ 26 апреля 2018

Изменение:

MsgBox (Range("rng").Rows.Count)

К:

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