Atribui código ao cabeçalho da coluna em vez da célula da coluna [closed]

0

todos, preciso de ajuda, gostaria de atribuir meu código ao cabeçalho da coluna em vez da célula da coluna. Mas eu não sei como posso fazer isso.

Estas são algumas informações

Worksheet = "Export Worksheet"    
Column 14's header = "PACKAGE"    
Column 10's header = "DAY_SCHEDULE"    
Column 11's header = "START_TIME"    
Colum 27's header = "LUNCH"

A seguir está minha codificação sem qualquer atribuição de código ao cabeçalho da coluna. Por favor ajude!

Sub Lunch()

Dim i, NumberOfRows As Integer

   With ActiveSheet
    NumberOfRows = .Cells(.Rows.Count, "B").End(xlUp).Row
   End With

For i = 2 To NumberOfRows
    If (((Cells(i, 14).Value <> "" And Cells(i, 14).Value = Cells(i + 1, 14).Value) And (Cells(i, 10).Value = Cells(i + 1, 10).Value) And (Cells(i + 1, 11).Value - Cells(i, 11).Value) > 120)) Then
        Cells(i, 27).Value = "TRUE"
    Else
        Cells(i, 27).Value = "FALSE"
    End If
Next
    
por BANGTAN SOPE 30.10.2017 / 09:04

1 resposta

1

Os itens a seguir devem mostrar o que você está procurando:

Sub Lunch()
    Dim i As Integer
    Dim NumberOfRows As Integer
    Dim ws As Worksheet
    Dim Package As Variant
    Dim DaySchedule As Variant
    Dim StartTime As Variant
    Dim Lunch As Variant

    Set ws = ActiveSheet

'Set Variables
    Package = Application.Match("PACKAGE", ws.Range("1:1"), 0)
    DaySchedule = Application.Match("DAY_SCHEDULE", ws.Range("1:1"), 0)
    StartTime = Application.Match("START_TIME", ws.Range("1:1"), 0)
    Lunch = Application.Match("LUNCH", ws.Range("1:1"), 0)

'Check for missing headers
    If IsError(Package) Or IsError(DaySchedule) Or IsError(StartTime) Or IsError(Lunch) Then
        MsgBox "One or more of the required headers are missing!", vbCritical, "Error"
        Exit Sub
    End If

    With ws
        NumberOfRows = .Cells(.Rows.Count, "B").End(xlUp).Row
'Main Loop
        For i = 2 To NumberOfRows
            If (((.Cells(i, Package) <> "" And .Cells(i, Package) = .Cells(i + 1, Package)) And _
                    (.Cells(i, DaySchedule) = .Cells(i + 1, DaySchedule)) And _
                    (.Cells(i + 1, StartTime) - .Cells(i, StartTime)) > 120)) Then
                .Cells(i, Lunch).Value = "TRUE"
            Else
                .Cells(i, Lunch).Value = "FALSE"
            End If
        Next
    End With

End Sub

Isso pressupõe que seus cabeçalhos de coluna estão na linha 1.

    
por 30.10.2017 / 15:40