根据VBA Excel 2010

时间:2017-04-19 05:05:31

标签: excel-vba vba excel

我想根据其他单元格的值[S12]在名为“AlphaPackage_2017”的工作表中为单元格[S3]设置一个值。

检查应遵循单元格[S3]中的值以获取任何更改的值,并立即更新单元格[S12]中的值。

我写了下面的代码:

Do
    If S3.Value > 6 Then
        S12 = 20
    Else
        S12 = 7
    End If
Loop

代码无法正常工作,任何建议都表示赞赏...... 以及代码应写入的位置:在模块中还是在页面中?

2 个答案:

答案 0 :(得分:2)

在" AlphaPackage_2017"的Worksheet_Change事件中添加以下代码片材。

Private Sub Worksheet_Change(ByVal Target As Range)

' run the code below only if a value in cell "S3" is changed
If Not Intersect(Target, Range("S3")) Is Nothing Then

    Select Case Target.Value ' <-- check the value of Range("S3")
        Case Is > 6
            Range("S12").Value = 20
        Case Else
            Range("S12").Value = 7
    End Select
End If

End Sub

按照以下屏幕截图添加此代码的位置(以防万一您之前没有使用Worksheet事件):

enter image description here

答案 1 :(得分:2)

AlphaPackage_2017工作表的代码模块中,编写此例程:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "S3" Then
        Me.Range("S12").Value = IIf(Target.Value > 6, 20, 7)
    End If
End Sub