Добрый день всем. Делаю табель рабочего времени. По верхнему должно табелю должен быть сформирован нижний. Так как в табеле кроме отработанных часов может стоять буква (выходной, больничный отпуск), то при сравнении значения ячейки с числом, нет нормального сравнения и значение типа стринг понимает как числовое. Когда использовал свойство Range, такой проблемы не было. (извините за корявый код, пока учусь, использую примитивное программирование)
[vba]
Код
Application.ScreenUpdating = False Dim i As Integer, j As Integer, t As Integer i = 12: j = 19: t = 85 Do While L4.Range("E" & i).Value <> "" Do While j <= 51 For t = 82 To 113 Step 2 If L4.Cells(i, j).Value = L4.Range("CA" & t).Value Then L4.Cells(i + 110, j).Value = L4.Cells(i, j).Value Exit For End If Next t [b]If L4.Cells(i, j).Value > 8 Then L4.Cells(i + 110, j).Value = 8[/b] 'Вот тут и вся загвоздка, видит что буква, но перепишет на цифру.
If L4.Cells(i, j).Value <= 8 Then L4.Cells(i + 110, j).Value = L4.Cells(i, j).Value
j = j + 1 If j = 34 Then j = 36 Loop j = 19: t = 85 i = i + 1 Loop
[/vba]
Добрый день всем. Делаю табель рабочего времени. По верхнему должно табелю должен быть сформирован нижний. Так как в табеле кроме отработанных часов может стоять буква (выходной, больничный отпуск), то при сравнении значения ячейки с числом, нет нормального сравнения и значение типа стринг понимает как числовое. Когда использовал свойство Range, такой проблемы не было. (извините за корявый код, пока учусь, использую примитивное программирование)
[vba]
Код
Application.ScreenUpdating = False Dim i As Integer, j As Integer, t As Integer i = 12: j = 19: t = 85 Do While L4.Range("E" & i).Value <> "" Do While j <= 51 For t = 82 To 113 Step 2 If L4.Cells(i, j).Value = L4.Range("CA" & t).Value Then L4.Cells(i + 110, j).Value = L4.Cells(i, j).Value Exit For End If Next t [b]If L4.Cells(i, j).Value > 8 Then L4.Cells(i + 110, j).Value = 8[/b] 'Вот тут и вся загвоздка, видит что буква, но перепишет на цифру.
If L4.Cells(i, j).Value <= 8 Then L4.Cells(i + 110, j).Value = L4.Cells(i, j).Value
j = j + 1 If j = 34 Then j = 36 Loop j = 19: t = 85 i = i + 1 Loop