0

我正在使用 Excel 2007。我有 9 列:

  1. A列是计数器(+1)
  2. B 到 E 列是手动数据输入
  3. F列是父验证
  4. G 列是 F 的子验证
  5. H 列是 F 列选择 Layout 时 G 列的 Vlookup 并且
  6. 当列 F 选择 Routing 时,列 J 是列 G 的 Vlookup。

我创建了一个分配给按钮的宏,该按钮复制您所在的行(最后一行)并将其插入 1 行并清除 B 到 E 列的内容。

我正在寻找一种方法在复制到 Not_Started 期间将列 F 父级重置为 3 个选项:(Not_Started、布局、路由)。

以下是当前宏。

Sub Copy_1_Line()
    Application.EnableEvents = False
    Rows(ActiveCell.Row).Select
    Selection.Copy
    Rows(ActiveCell.Row + 1).Select
    Selection.Insert Shift:=xlDown
    ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
    ActiveCell.ClearContents
    ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
    ActiveCell.ClearContents
    ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
    ActiveCell.ClearContents
    ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
    ActiveCell.ClearContents
    ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
    Application.EnableEvents = True
    Application.CutCopyMode = False
End Sub
4

1 回答 1

1

选择会减慢您的代码,删除它们会加快您的代码并使其更易于维护。

如果我理解正确,您希望活动单元格行,F 列显示未开始。如果您希望新行具有该功能,请更改行

Cells(ActiveCell.Row, "F") = "Not_Started"

Cells(ActiveCell.Row+1, "F") = "Not_Started"

这是我的建议:

Sub Copy_1_Line()
Application.EnableEvents = False

Rows(ActiveCell.Row).Copy Rows(ActiveCell.Row + 1)
Cells(ActiveCell.Row + 1, 2).Resize(1, 4).ClearContents
Cells(ActiveCell.Row, "F") = "Not_Started"

Application.EnableEvents = True
Application.CutCopyMode = False
End Sub

于 2012-09-24T16:17:10.633 回答