繁体   English   中英

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

[英]Excel VBA set something in Range as ActiveCell.Offset

这对你们来说可能是非常基本的,但是我刚刚开始在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的结果进入“偏移”单元格(0,2)。 我设置了“ C4”,这样我就不会出现任何错误,但是很明显,当我选择A5时,如果我希望它在C5中运行,我的结果仍然会在C4中出现。

使用什么功能?

寻求答案

我认为您将需要使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM