带有Msgbox的单元格组中的VBA Excel更改值无效

带有Msgbox的单元格组中的VBA Excel更改值无效,excel,vba,Excel,Vba,下午好 我正在尝试更改与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"

下午好

我正在尝试更改与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
还是没有结果,

谁能澄清一下我做错了什么


谢谢

除了合并的单元格是邪恶的之外,您可能首先要更改:

如果ans=Yes,则进入>>如果ans=vbYes,则

在模块顶部使用Option Explicit将有助于捕获此未初始化的未声明变量。接下来,看一看关于如何避免使用Select的帖子。可以直接赋值。请注意,合并区域的左上角单元格保存您的值,您可以使用@BigBen RangeH24.value=N/a演示的值分配直接更改该值,但至少不要忘记明确说明您的工作表

MS提供的一些有关功能的文档。

替换:

If ans = Yes Then
与:

Yes是一个既没有调暗也没有初始化的变量。

RangeH24.Value=N/a.ans=Yes。。。。你没有一个变量说是。如果单击“是”,则返回值为6。我想这是你首先出错的地方,除了合并的单元格本身是邪恶的。^你真的需要默认打开OptionExplicit。
If ans = 6 Then