Excel如果单元格< = Value,如何将工作表1中的数据行复制到工作表2

时间:2016-03-31 07:22:38

标签: excel excel-vba vba

我正在尝试整理一张Excel表格,以帮助跟踪某些车辆的服务到期时间。

这个想法是表单将自动跟踪需要服务的天数。我在倒计时列上有条件格式,如果它显示的数字小于或等于5则变为红色。 我想更进一步,这样任何显示5天或更短天数的车辆都会被复制到第2页。

enter image description here

因此,如果倒计时列显示5天或更短的时间,我希望它将行中的一些列复制到表2并继续功能(倒计时仍然会下降)。

如果不可能,整行也会没问题。

enter image description here

这样,任何需要服务的车辆都显示在同一区域。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我不是VBA专家,但你可以尝试这个作为首发。

将此代码粘贴到Alt + F11 - > VBAProject - > Microsoft Excel对象 - > Sheet1(Sheet1)

Private Sub Worksheet_Change(ByVal Target As Range)

'Declarations
Dim c1 As Object
Dim c2 As Object
Dim countdown As Integer
Dim rego As String
Dim duedt As String

Application.ScreenUpdating = False

Worksheets("Sheet2").Range("A2:C500").Clear
'Copy row
For Each c1 In Worksheets("Sheet1").Range("E3:E500").Cells
    If c1.Value <= 5 And c1.Value <> 0 Then
        countdown = c1.Value
        rego = c1.Offset(0, -4).Value
        duedt = c1.Offset(0, -1).Value
        For Each c2 In Worksheets("Sheet2").Range("C2:C500").Cells
            If c2.Value = "" Then
                c2.Value = countdown
                c2.Offset(0, -2).Value = rego
                c2.Offset(0, -1).Value = duedt
            Exit For
            End If
        Next c2
    End If
    If c1.Value = 0 Then
    Exit For
    End If
Next c1

Application.ScreenUpdating = True

End Sub

我假设&#39;倒计时&#39;不会有&#39; 0&#39;价值,你将有最多500个条目。