在VBA上更新单元格

时间:2017-10-03 16:39:28

标签: excel vba excel-vba copy

我想更新B1细胞。我已经做到了:

Sub test()
x = 1
y = 1

    Do While Cells(y, 1).Value <> "" 
      If Cells(y, 1) > 0 Then    Cells(y, 2).Value = Cells(x, 3).Value
         x = x + 1
         y = y + 1
      End If
 Loop
End Sub

A1单元格是空的,所以当我输入A1的数字时,我想使用这个表格。 键入A1的数字后,c1单元格将获得另一个数字  具有Vlookup功能。

这个C1号码我只想转换为数字(没有功能),这就是为什么我要复制B1的C1值 输入A1并且C1出现后,只需要我更新B1。

此刻,当我输入A1时,我只能使用宏,而在我开始使用宏后,C1会出现。当我输入A1和C1时,我想要的比B1更自动地显示C1值。 谢谢!

1 个答案:

答案 0 :(得分:0)

您正在寻找的是Worksheet_Change event

首先,您需要在Visual Basic编辑器中双击相应的工作表:

enter image description here

这将打开该表的代码模块。然后将此代码复制/粘贴到其中:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rCheck As Range
    Dim ChangedCell As Range

    Set rCheck = Intersect(Target, Me.Columns("A"))

    Application.EnableEvents = False

    If Not rCheck Is Nothing Then
        For Each ChangedCell In rCheck.Cells
            If ChangedCell.Value > 0 Then Me.Cells(ChangedCell.Row, "B").Value = Me.Cells(ChangedCell.Row, "C").Value
        Next ChangedCell
    End If

    Application.EnableEvents = True

End Sub