У меня есть файл excel, где каждая строка определенного столбца имеет данные (как даты, так и целые числа), разделенные символом «|». С VBA я хочу выделить ячейку, если она содержит значение, превышающее 3 000 000.Разделить ячейки с разделителями и выделить, если ячейка содержит определенное значение
Ниже приведен мой код. sh2lrow - последняя строка моего текущего листа (лист 2). ioSched - это столбец, с которым я работаю. Можете ли вы помочь мне с лучшим решением? Я разделяю ячейки, тогда, если это целое число, преобразование строки в целое число, а затем выделение красным цветом, если оно превышает 3 000 000.
For i = 2 To sh2lRow
splitBudget = Split((sh2.Cells(i, ioSched)), "|")
For Each Item In splitBudget
If IsNumeric(Item) Then
finalNumber = CInt(Item)
Else: finalNumber = 0
End If
If finalNumber > 3000000 Then sh2.Cells(i, ioSched).Interior.ColorIndex = 3
Next
Next i
Который приходит first: 'date | номер 'или' номер | date'? И число с тысячами разделителей? – Parfait
У вас возникли проблемы с 'On Error Resume Next'? 'CInt (Item)' будет переполняться, если значение превышает 32 767. Вам нужно, чтобы finalNumber был 'Long' - используйте' CLng (Item) 'вместо этого. – Comintern
Это дата | дата | число, иногда повторяющееся (т. е. дата | дата | номер | дата | дата | число). Нет тысяч разделителей. Я привел пример в «образ Excel файла здесь». Я тоже зацикливаюсь, потому что хочу выделить, если какой-либо из чисел в ячейке больше 3000000. –