Страницы: 1
RSS
Суммировать значения в ячейке с жирным шрифтом исключая текст
 
Добрый день! Есть скрипт для суммы цифр с жирным текстом. Но если в столбце появляется текст он не работает. Помогите пожалуйста! Как обойти  текст? С макросами работаю буквально пару дней. На просторах интернета пока ничего не нашел. Заранее благодарен!
Код
Sub BoldSum()
Dim BoldSum As Double
Dim NoBoldSum As Double
Dim i As Long
Dim iLastRow As Long
  iLastRow = Cells(Rows.Count, 5).End(xlUp).Row
  BoldSum = 0
  NoBoldSum = 0
  For i = 5 To iLastRow
    If Cells(i, 5).Font.Bold = True Then
      BoldSum = BoldSum + Cells(i, 5)
    Else
      NoBoldSum = NoBoldSum + Cells(i, 5)
    End If
  Next
    Cells(i, 6) = BoldSum
    
    Cells(i, 6).NumberFormat = "#,##0.00"
End Sub
 
Добрый день. По-моему, можно добавить в первое условие проверку содержимого ячейки - если там число. И только если там число - тогда проводить суммирование.
Код
Sub BoldSum()
Dim BoldSum As Double
Dim NoBoldSum As Double
Dim i As Long
Dim iLastRow As Long
  iLastRow = Cells(Rows.Count, 5).End(xlUp).Row
  BoldSum = 0
  NoBoldSum = 0
  For i = 5 To iLastRow
    If Cells(i, 5).Font.Bold = True And IsNumeric(Cells(I, 5)) = True Then
      BoldSum = BoldSum + Cells(i, 5)
    Else
      NoBoldSum = NoBoldSum + Cells(i, 5)
    End If
  Next
    Cells(i, 6) = BoldSum
    
    Cells(i, 6).NumberFormat = "#,##0.00"
End Sub

Не очень понятно, зачем в коде ветка Else, если ее результат не используется никак, но не суть. :)
Изменено: Пытливый - 15.05.2019 09:57:42
Кому решение нужно - тот пример и рисует.
 
Спасибо за ответ! Выдает ошибку Run-time error '13' Type mismatch.
 
Код
Sub BoldSum()
Dim BoldSum As Double
Dim NoBoldSum As Double
Dim i As Long
Dim iLastRow As Long
  iLastRow = Cells(Rows.Count, 5).End(xlUp).Row
  BoldSum = 0
  NoBoldSum = 0
  For i = 5 To iLastRow
    If IsNumeric(Cells(i, 5)) = True Then
       If Cells(i, 5).Font.Bold = True Then
         BoldSum = BoldSum + Cells(i, 5)
       Else
         NoBoldSum = NoBoldSum + Cells(i, 5)
       End If
   End if
  Next
    Cells(i, 6) = BoldSum
     
    Cells(i, 6).NumberFormat = "#,##0.00"
End Sub
Изменено: May_the4 - 16.05.2019 17:47:10
 
Огромное спасибо, May_the4!!! Все работает!
Страницы: 1
Наверх