Использование существующего кода для обновления 2 отдельных листов - PullRequest
0 голосов
/ 01 июня 2018

Итак, я создал трекер производительности для нашей команды продаж, основанный на количестве звонков, которые они совершают в час, на основе простой кнопки.Код, который я использую, определяет, какой сегодня день, какой час дня, а затем увеличивается на единицу при каждом нажатии кнопки.Он учитывает наши часы обеда, а также, когда день заканчивается и начинается.Однако сейчас я сталкиваюсь с проблемой, которая требует, чтобы они всегда были на этом листе, чтобы они могли это увидеть.Я обновил код, чтобы они могли нажимать кнопку с другого листа, но я бы хотел, чтобы они могли видеть общее увеличенное число в зависимости от дня.Вот существующий код, который я использую.

Sub OneclickUpdate()
    strTime = Hour(Now()) 'grabs the current hour on a 24 hour rotation
    Dim LWeekday As Integer

    LWeekday = Weekday(Date, vbMonday) 'Set Monday as day 1


    'Monday

    If strTime = 9 And LWeekday = 1 Then
        Worksheets("Productivity Tracker").Range("C3").Value = Worksheets("Productivity Tracker").Range("C3") + 1
    ElseIf strTime = 10 And LWeekday = 1 Then
        Worksheets("Productivity Tracker").Range("C4").Value = Worksheets("Productivity Tracker").Range("C4") + 1

    ElseIf strTime = 11 And LWeekday = 1 Then
        Worksheets("Productivity Tracker").Range("C5").Value = Worksheets("Productivity Tracker").Range("C5") + 1

    ElseIf strTime = 12 And LWeekday = 1 Then
        Worksheets("Productivity Tracker").Range("C6").Value = Worksheets("Productivity Tracker").Range("C6") + 1

    ElseIf strTime = 13 And LWeekday = 1 Then
        Worksheets("Productivity Tracker").Range("C7").Value = Worksheets("Productivity Tracker").Range("C7") + 1

    ElseIf strTime = 14 And LWeekday = 1 Then
        Worksheets("Productivity Tracker").Range("C7").Value = Worksheets("Productivity Tracker").Range("C7") + 1

    ElseIf strTime = 15 And LWeekday = 1 Then
        Worksheets("Productivity Tracker").Range("C9").Value = Worksheets("Productivity Tracker").Range("C9") + 1

    ElseIf strTime = 16 And LWeekday = 1 Then
        Worksheets("Productivity Tracker").Range("C10").Value = Worksheets("Productivity Tracker").Range("C10") + 1

    ElseIf strTime = 17 And LWeekday = 1 Then
        Worksheets("Productivity Tracker").Range("C11").Value = Worksheets("Productivity Tracker").Range("C11") + 1


    'Tuesday

    ElseIf strTime = 9 And LWeekday = 2 Then
         Worksheets("Productivity Tracker").Range("E3").Value = Worksheets("Productivity Tracker").Range("E3") + 1

    ElseIf strTime = 10 And LWeekday = 2 Then
        Worksheets("Productivity Tracker").Range("E4").Value = Worksheets("Productivity Tracker").Range("E4") + 1

    ElseIf strTime = 11 And LWeekday = 2 Then
        Worksheets("Productivity Tracker").Range("E5").Value = Worksheets("Productivity Tracker").Range("E5") + 1

    ElseIf strTime = 12 And LWeekday = 2 Then
        Worksheets("Productivity Tracker").Range("E6").Value = Worksheets("Productivity Tracker").Range("E6") + 1

    ElseIf strTime = 13 And LWeekday = 2 Then
        Worksheets("Productivity Tracker").Range("E7").Value = Worksheets("Productivity Tracker").Range("E7") + 1

    ElseIf strTime = 14 And LWeekday = 2 Then
        Worksheets("Productivity Tracker").Range("E7").Value = Worksheets("Productivity Tracker").Range("E7") + 1

    ElseIf strTime = 15 And LWeekday = 2 Then
        Worksheets("Productivity Tracker").Range("E9").Value = Worksheets("Productivity Tracker").Range("E9") + 1

    ElseIf strTime = 16 And LWeekday = 2 Then
        Worksheets("Productivity Tracker").Range("E10").Value = Worksheets("Productivity Tracker").Range("E10") + 1

    ElseIf strTime = 17 And LWeekday = 2 Then
        Worksheets("Productivity Tracker").Range("E11").Value = Worksheets("Productivity Tracker").Range("E11") + 1

    'Wednesday

    ElseIf strTime = 9 And LWeekday = 3 Then
         Worksheets("Productivity Tracker").Range("G3").Value = Worksheets("Productivity Tracker").Range("G3") + 1

    ElseIf strTime = 10 And LWeekday = 3 Then
        Worksheets("Productivity Tracker").Range("G4").Value = Worksheets("Productivity Tracker").Range("G4") + 1

    ElseIf strTime = 11 And LWeekday = 3 Then
        Worksheets("Productivity Tracker").Range("G5").Value = Worksheets("Productivity Tracker").Range("G5") + 1

    ElseIf strTime = 12 And LWeekday = 3 Then
        Worksheets("Productivity Tracker").Range("G6").Value = Worksheets("Productivity Tracker").Range("G6") + 1

    ElseIf strTime = 13 And LWeekday = 3 Then
        Worksheets("Productivity Tracker").Range("G7").Value = Worksheets("Productivity Tracker").Range("G7") + 1

    ElseIf strTime = 14 And LWeekday = 3 Then
        Worksheets("Productivity Tracker").Range("G7").Value = Worksheets("Productivity Tracker").Range("G7") + 1

    ElseIf strTime = 15 And LWeekday = 3 Then
        Worksheets("Productivity Tracker").Range("G9").Value = Worksheets("Productivity Tracker").Range("G9") + 1

    ElseIf strTime = 16 And LWeekday = 3 Then
        Worksheets("Productivity Tracker").Range("G10").Value = Worksheets("Productivity Tracker").Range("G10") + 1

    ElseIf strTime = 17 And LWeekday = 3 Then
        Worksheets("Productivity Tracker").Range("G11").Value = Worksheets("Productivity Tracker").Range("G11") + 1


    'Thursday

    ElseIf strTime = 9 And LWeekday = 4 Then
         Worksheets("Productivity Tracker").Range("I3").Value = Worksheets("Productivity Tracker").Range("I3") + 1

    ElseIf strTime = 10 And LWeekday = 4 Then
        Worksheets("Productivity Tracker").Range("I4").Value = Worksheets("Productivity Tracker").Range("I4") + 1

    ElseIf strTime = 11 And LWeekday = 4 Then
        Worksheets("Productivity Tracker").Range("I5").Value = Worksheets("Productivity Tracker").Range("I5") + 1

    ElseIf strTime = 12 And LWeekday = 4 Then
        Worksheets("Productivity Tracker").Range("I6").Value = Worksheets("Productivity Tracker").Range("I6") + 1

    ElseIf strTime = 13 And LWeekday = 4 Then
        Worksheets("Productivity Tracker").Range("I7").Value = Worksheets("Productivity Tracker").Range("I7") + 1

    ElseIf strTime = 14 And LWeekday = 4 Then
        Worksheets("Productivity Tracker").Range("I7").Value = Worksheets("Productivity Tracker").Range("I7") + 1

    ElseIf strTime = 15 And LWeekday = 4 Then
        Worksheets("Productivity Tracker").Range("I9").Value = Worksheets("Productivity Tracker").Range("I9") + 1

    ElseIf strTime = 16 And LWeekday = 4 Then
        Worksheets("Productivity Tracker").Range("I10").Value = Worksheets("Productivity Tracker").Range("I10") + 1

    ElseIf strTime = 17 And LWeekday = 4 Then
        Worksheets("Productivity Tracker").Range("I11").Value = Worksheets("Productivity Tracker").Range("I11") + 1



    'Friday

    ElseIf strTime = 8 And LWeekday = 5 Then
         Worksheets("Productivity Tracker").Range("K2").Value = Worksheets("Productivity Tracker").Range("K2") + 1

    ElseIf strTime = 9 And LWeekday = 5 Then
        Worksheets("Productivity Tracker").Range("K3").Value = Worksheets("Productivity Tracker").Range("K3") + 1

    ElseIf strTime = 10 And LWeekday = 5 Then
        Worksheets("Productivity Tracker").Range("K4").Value = Worksheets("Productivity Tracker").Range("K4") + 1

    ElseIf strTime = 11 And LWeekday = 5 Then
        Worksheets("Productivity Tracker").Range("K5").Value = Worksheets("Productivity Tracker").Range("K5") + 1

    ElseIf strTime = 12 And LWeekday = 5 Then
        Worksheets("Productivity Tracker").Range("K6").Value = Worksheets("Productivity Tracker").Range("K6") + 1

    ElseIf strTime = 13 And LWeekday = 5 Then
        Worksheets("Productivity Tracker").Range("K6").Value = Worksheets("Productivity Tracker").Range("K6") + 1

    ElseIf strTime = 14 And LWeekday = 5 Then
        Worksheets("Productivity Tracker").Range("K8").Value = Worksheets("Productivity Tracker").Range("K8") + 1

    ElseIf strTime = 15 And LWeekday = 5 Then
        Worksheets("Productivity Tracker").Range("K9").Value = Worksheets("Productivity Tracker").Range("K9") + 1

    ElseIf strTime = 16 And LWeekday = 5 Then
        Worksheets("Productivity Tracker").Range("K10").Value = Worksheets("Productivity 
        Tracker").Range("K10") + 1

    ElseIf strTime <> [8,9,10,11,12,13,14,15,16,17] Or LWeekday <> [1,2,3,4,5] Then
        MsgBox "Seriously, Enough work already, go home!"

    End If
End Sub

Итак, скажем, этот лист производительности - это лист B. Я хочу иметь возможность поместить в ячейку A1 листа A день, а в ячейку B1 листа A - число, которое он до сих пор увеличивал.Я надеюсь, что в этом есть смысл.Большое спасибо за любую помощь.

1 Ответ

0 голосов
/ 01 июня 2018

Похоже, вы хотите знать только общее количество на другом листе, я назвал лист "SHEET A" и применил другой подход, чтобы сделать ваш код короче.

Попробуйте это:

Sub OneclickUpdate()
    strTime = Hour(Now()) 'grabs the current hour on a 24 hour rotation
    Dim LWeekday As Integer, count As Integer
    Dim cols As Variant
    usedCol = Array("C", "E", "G", "I", "K")
    weekdayRow = Array(3, 4, 5, 6, 7, 7, 9, 10, 11)
    weekendRow = Array(2, 3, 4, 5, 6, 6, 8, 9, 10)
    LWeekday = Weekday(Date, vbMonday) 'Set Monday as day 1

    If strTime >= 8 And strTime <= 17 And LWeekday >= 1 And LWeekday <= 5 Then
        'The next two lines paste the date on A1 in Sheet A and Sheet B
        Worksheets("SHEET A").Range("A1").Value = Format(Now(), "mm/dd/yyyy")
        Worksheets("SHEET B").Range("A1").Value = Format(Now(), "mm/dd/yyyy")
        If LWeekday = 5 And strTime <> 17 Then
            With Worksheets("Productivity Tracker").Range(usedCol(LWeekday - 1) & weekendRow(strTime - 8))
                .Value = .Value + 1
                'The next two lines paste the Total number for the day on
                'Sheet A and Sheet B
                Worksheets("SHEET A").Range("B1").Value = .Value
                Worksheets("SHEET B").Range("B1").Value = .Value
            End With
        ElseIf LWeekday <> 5 And strTime <> 8 Then
            With Worksheets("Productivity Tracker").Range(usedCol(LWeekday - 1) & weekdayRow(strTime - 9))
                .Value = .Value + 1
                'The next two lines paste the Total number for the day on
                'Sheet A and Sheet B
                Worksheets("SHEET A").Range("B1").Value = .Value
                Worksheets("SHEET B").Range("B1").Value = .Value
            End With
        Else
            MsgBox "Seriously, Enough work already, go home!"
        End If
    Else
        MsgBox "Seriously, Enough work already, go home!"
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...