VBA自动清除/填充

时间:2016-05-26 17:23:05

标签: excel vba automation

我正在尝试为我的工厂的团队制作一个易于使用的跟踪表。 5列是输入数据的位置。

每个任务都是它自己的行。 “Category”和“SME”列是数据验证下拉列表。

目前,我有一个灰色的任务栏似乎已经抖动,除了输入任务之外的任何内容;此自动填充行编辑的日期。然后用户选择“类别”,“SME”,并输入“小时”。

当任务被清除时,它将自动填充单词任务并再次应用灰色,同时清除该行上的所有其他信息。我遇到的问题是我需要包含500行任务,因为每张表都是按月计算的。这些表还需要自动运行VBA;没有选择或启动宏 - 我的人不明白。我知道要做的是将日期人口作为一般应用,但其他一切都是按行和excel说我的程序太长了。请帮忙。

TLDR:在完成所有自动填充和删除操作时,我需要帮助将我的代码合并为该行的唯一代码。

Private Sub Worksheet_Change(ByVal Target As Range)

' ////////////////////General Actions////////////////////
Dim A As Range, B As Range, Inte As Range, r As Range
Set A = Range("B:B")
Set Inte = Intersect(A, Target)
If Inte Is Nothing Then Exit Sub
Application.EnableEvents = False
    For Each r In Inte
        r.Offset(0, 3).Value = Date
    Next r
Application.EnableEvents = True

' ////////////////////General Actions////////////////////

' ////////////////////Row 6////////////////////
If InStr(1, ActiveSheet.Range("B6").Value, "Task") > 0 Then
    Range("B6").Font.Color = RGB(161, 161, 161)
        Else
    Range("B6").Font.Color = vbBlack
        End If
If Not Intersect(Target, Range("B6")) Is Nothing Then
If Range("B6").Value = "" Then
    Range("B6").Value = "Task"
        End If
        End If
If Not Intersect(Target, Range("B6")) Is Nothing Then
If Range("B6").Value = "Task" Then
    Range("F6").Value = ""
        End If
        End If
If Not Intersect(Target, Range("B6")) Is Nothing Then
If Range("B6").Value = "Task" Then
    Range("E6").Value = ""
        End If
        End If
If Not Intersect(Target, Range("B6")) Is Nothing Then
If Range("B6").Value = "Task" Then
    Range("C6").Value = "Please select…"
        End If
        End If
' ////////////////////Row 6////////////////////

0 个答案:

没有答案