Excel VBA在Range中将某些内容设置为ActiveCell.Offset

时间:2017-12-01 18:12:56

标签: excel vba

对于你们来说这可能是非常基本的,但我刚开始在Excel中使用VBA,尽管我对功能背后的逻辑非常了解,但我似乎无法找到我想要的东西......

这是我的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

Set KeyCells = Range("A4:A27")

If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
    Dim myValue As Variant
    myValue = InputBox("Indiquer la quantité", "Quantité")
    Range("C4").Value = myValue

    If Cells("4", "C") > 1 Then
        MsgBox (myValue & " produits sélectionnés")
    End If

    If Cells("4", "C") < 1 Then

    End If
End If

基本上我的文档是一个表,您可以在另一个范围内选择一个单元格(“A4:A27”)。我希望我的InputBox的结果进入Offset单元格(0,2)。我设置“C4”以便我不会得到任何错误,但显然当我选择A5时,我的结果仍然在C4中,当我希望它进入C5时....

使用的功能是什么?

寻求答案

1 个答案:

答案 0 :(得分:0)

我认为您需要使用Target单元格。这会做你想要的吗?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

Set KeyCells = Range("A4:A27")

If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
    Dim myValue As Variant
    myValue = InputBox("Indiquer la quantité", "Quantité")
    Range("C" & Target.Row).Value = myValue

    If Cells(Target.Row, "C") > 1 Then
        MsgBox (myValue & " produits sélectionnés")
    End If

    If Cells(Target.Row, "C") < 1 Then

    End If
End If