WorkSheet_Change事件不会自动更新

时间:2017-03-30 22:53:11

标签: excel vba excel-vba

我正在尝试根据第H列中的值自动更新第I列中的单元格值。 - 我希望每当用户在H列中输入任何值时,就应该在相应的第I列中复制前五个字符。

  • 如果我在H栏输入123456789,那么12345应立即在第I栏自动更新

****面临的问题**

  • 当在列H中输入值时,列i中的值不会自动填充。假设在列H中输入了5行,只有在用户输入第I列中的任何值后才会更新或填充值
  • 如果我更改了Target.Range(“B”和“i”),在For循环的下面代码中,当我点击Column时,C列中的值会更新,而不是B中的值。我理解提到的预期目标范围是第I列,但是当我在for循环中输入B列时,为什么C列会更新**

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Intersect(Target, Range("I1:I20")) Is Nothing Then Exit Sub
       Application.EnableEvents = False
       'Set the values to be uppercase
          Dim i As Long
          'With Sheets("Sheet1")
           For i = 1 To 20
               Target.Range("A" & i).Value = Mid(Range("H" & i), 1, 5)
    
           Next i
          'End With
      Application.EnableEvents = True
    End Sub
    

1 个答案:

答案 0 :(得分:1)

你真的不需要循环 - 要立即获得结果,只需执行此操作

std::cout

Mid Function返回一个字符串,其中包含字符串中指定数量的字符。