gpt4 book ai didi

vba - WorkSheet_Change 事件不会自动更新

转载 作者:行者123 更新时间:2023-12-04 20:35:34 26 4
gpt4 key购买 nike

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

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

  • ****面临的问题**
  • 当在 H 列中输入值时,i 列中的值不会自动填充。假设在 H 列中输入了 5 行,只有在用户在 I 列中输入任何值后才会更新或填充值
  • 在 For 循环中的以下代码中,如果我更改 Target.Range("B"& i) 并且当我单击 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
  • 最佳答案

    您实际上并不需要循环 - 要立即获得结果,只需执行此操作

    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)

    Application.EnableEvents = False

    If Not Intersect(Target, Range("H1:H20")) Is Nothing Then

    Target.Offset(0, 1) = Mid(Target.Value, 1, 5)

    End If

    Application.EnableEvents = True

    End Sub

    Mid 函数从字符串中返回包含指定数量字符的字符串。

    关于vba - WorkSheet_Change 事件不会自动更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43129649/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com