更改单元格值然后将遵循vba

更改单元格值然后将遵循vba

我有一个代码可以自动填充 A 列中的系列。我的工作表受密码保护,只能编辑特定的单元格。

A 列是请求数据的依据或数量。例如:

Gee-2019-000
Gee-2019-001 ...

我只想要 A2 中的值Gee-2019-000改变。如果我输入Gee-2020-000位于 A2 上,其余部分将随之而来。例如:

Gee-2020-000
Gee-2020-001 ...

注意:仅 A2 允许编辑请求的数字。

这是我的代码。我实际上不知道该怎么做,但我尝试了一些方法以防万一,但结果却没有成功。

Dim target As Excel.Range
    With target
        If .Address = Range("A2").Address Then
            .AutoFill Destination:=Range("A2:A1222"), Type:=xlFillDefault
        End If
    End With

答案1

用。。。来代替.AutoFill Destination:=Range("A2:A1222"), Type:=xlFillDefault

Dim r As Range
Dim prefixVal As String
Dim i As Integer

i = 1
prefixVal = Left(Range("A2"), InStrRev(Range("A2"),"-"))
For Each r In Range("A3:A1222")
    r.Value = prefixVal & Format(i, "000")
    i = i + 1
Next r

答案2

我建议宏将根据源值用增量填充目标单元格。

  • 将此宏复制并粘贴为标准模块。

    Sub IncremntValue()
    
    Dim code As String
    code = InputBox("Enter Code")
    
    Range("B1").Value = code
    Range("B2").Formula = "=LEFT(B1,9)&TEXT(ROW(A1),""000"")"
    Range("B2").Select
    Selection.AutoFill Destination:=Range("B2:B200"), Type:=xlFillDefault
    
    End Sub
    

你会得到如下结果:

  • 我假设 INPUT 值为Gee-2019-000

在此处输入图片描述

一旦您修改 B1 中的源值或输入任何新代码,您就会得到以下结果:

在此处输入图片描述

注意:

  • 用于输入框使得代码更加高效、快捷。
  • 我使用的公式=LEFT(B1,9)&TEXT(ROW(A1),""000"")" 是情境化的,如果单元格中的代码组成B1发生变化,则可能会有所不同。
  • 根据需要调整公式中的单元格引用。

編輯:

实现自动化自动填充事件最好使用带有工作表变更事件,而不是简单宏。

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$A$1")) Is Nothing Then


Range("A2").Formula = "=LEFT($A$1,9)&TEXT(ROW(A1),""000"")"
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A20"), Type:=xlFillDefault

End If

End Sub

相关内容