VBA Excel Изменение значения в группе ячеек с помощью Msgbox не работает - PullRequest
0 голосов
/ 21 апреля 2020

Добрый день,

Я пытаюсь изменить значения в моей группе ячеек (объединенные ячейки) с помощью Msgbox. К сожалению, это не работает вообще.

Мой код выглядит следующим образом:

Sub Nocivils()
ans = MsgBox("Do you want to remove the civils description?", vbQuestion + vbYesNo)

If ans = Yes Then

   Range("H24:Q32").Select
   ActiveCell.FormulaR1C1 = "N/A"
   Range("H24:Q32").Select
End If

End Sub

Я пробовал ранее:

Sub Nocivils()
ans = MsgBox("Do you want to remove the civils description?", vbQuestion + vbYesNo)

If ans = Yes Then

   Activesheet.Range("H24:Q32").Select
   Range("H24:Q32").Value = "N/A
End If

End Sub

И до сих пор нет результата,

Может кто-нибудь уточнить, что я здесь делаю не так?

Спасибо enter image description here

Ответы [ 2 ]

4 голосов
/ 21 апреля 2020

Помимо объединенных ячеек, являющихся злыми, сначала вы можете захотеть изменить:

If ans = Yes Then на >> If ans = vbYes Then

Использование Option Explicit в верхней части вашего модуля будет иметь помог поймать эту неинициализированную необъявленную переменную. Далее, посмотрите этот пост о том, как избежать использования Select. Вы можете назначить значение напрямую. Обратите внимание, что в верхней левой ячейке объединенной области хранится ваше значение, которое вы можете изменить напрямую, используя присвоение значения, продемонстрированное @BigBen (Range("H24").Value = "N/A"), но не забывайте, по крайней мере, явно указывать свой рабочий лист!

Некоторая документация по MsgBox функции от MS.

2 голосов
/ 21 апреля 2020

Заменить:

If ans = Yes Then

на:

If ans = 6 Then

(Yes - это переменная, которая не была Dim 'ed или инициализирована. )

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