Можно ли заменить IFS в Excel 2016 - PullRequest
0 голосов
/ 17 мая 2019

Я использую Office 365 и создаю WB для того, кто использует Excel 2016. Мой код вставляет формулу «IFS» во все ячейки столбца до последней строки. Проблемы в том, что IFS недоступен в 2016 году, поэтому код не работает для них, но работает для меня. Есть ли способ изменить следующий код для работы в 2016 году? Когда они запускают макрос, get #NAME?

Dim Lastrow As Long
Lastrow = Range("A" & Rows.Count).End(xlUp).Row
Range("G2").Select
ActiveCell.FormulaR1C1 = _
    "=IFS(RC[-2]=""2nd Shift 1.05"",""2"", RC[-2]=""2nd Shift     
Overtime"",""2"",TRUE,"""")" 
Range("G2").Select
Selection.AutoFill Destination:=Range("G2:G" & Lastrow)
Range("E2").Select
End Sub

Ответы [ 2 ]

0 голосов
/ 17 мая 2019
   Dim LastCall As Long
    Dim y As Long
    LastCall = Range("A" & Rows.Count).End(xlUp).Row
    For y = 2 To LastCall
        If Range("E" & y).Value = "2nd Shift 1.05" Then
            Range("G" & y).Value = "2"
    End If
    Next y

    LastCall = Range("A" & Rows.Count).End(xlUp).Row
    For y = 2 To LastCall
        If Range("E" & y).Value = "2nd Shift Overtime" Then
            Range("G" & y).Value = "2"
    End If
    Next y
End Sub
0 голосов
/ 17 мая 2019

Ваш код может быть сокращен до:

Dim Lastrow As Long

Lastrow = Range("A" & Rows.Count).End(xlUp).Row

Range("G2:G" & Lastrow).Formula = "=IF(OR(E2 = ""2nd Shift 1.05"",E2=""2nd Shift Overtime""),2,"""")"
...