消息框后,单元格中的值正在更改

问题描述 投票:0回答:3

这是我的代码

Sub errors()

Dim wsd As Worksheet

Set wsd = Worksheets("Sheet1")

    With Forc

        If Len([F4]) <> 4 Then
            [F4] = MsgBox("add values")

        End If

    End With


End Sub

我的代码读取如果在单元格F4中,如果位数不是4则显示错误消息。错误消息显示正常,但当我在消息框中按“确定”时,F4中的值更改为1.我不希望它更改为1.为什么这样做,我该如何解决?

vba excel-vba
3个回答
0
投票

请尝试以下代码:

Sub errors()
Dim wsd As Worksheet
Set wsd = Worksheets("Sheet1")
    With Forc
        If Len([F4]) <> 4 Then
            MsgBox ("add values")
        End If
    End With
End Sub

如有任何问题或疑虑,请随时告诉我。期待您的回音。


1
投票

它这样做是因为你说:

[F4] = MsgBox("add values")

...意思设置等于范围F4 MsgBox的值。 MsgBox返回vbOk(枚举值对应于1),该值设置为1。

你只需要写:

MsgBox("add values")

0
投票

不要将范围[F4]设置为您的消息Box,这就是它获取返回值的原因

Sub errors()

Dim wsd As Worksheet

Set wsd = Worksheets("Sheet1")

    With Forc

        If Len([F4]) <> 4 Then
            MsgBox("add values")

        End If

    End With


End Sub
© www.soinside.com 2019 - 2024. All rights reserved.