Страницы: 1
RSS
Отображение формата процентов в ListBox
 
Добрый вечер всем !

Столкнулся с проблемой - значения ячеек в формате % некорректно отображаются в ListBox формы
в ячейке например 10%  - в ListBox отображается 0,10
в ячейке например 25%  - в ListBox отображается 0,25

Пробую загнать в форму код
Код
Private Sub UserForm_Initialize()
Dim  i As Long
With Me.ListBox1
'      For i = .ListCount - 1 To 0 Step -1
      For i = 0 To 5
         .List(i, 0) = (Format(.List(i, 0), "0%"))
      Next i
End With
  

отображать начинает шестизначные числа и пр - как можно правильно наладить в ListBox отображение % ?
 
Код
.List(i, 0) = Percent(.List(i, 0))
Согласие есть продукт при полном непротивлении сторон
 
К сожалению ошибку пишет на Percent  типа Sub or Function not defined  - не пркатывает почемуто строка с Percent
Изменено: andreyka33 - 11.07.2019 22:26:21
 
Файл-пример в студию
Согласие есть продукт при полном непротивлении сторон
 
прикладываю
 
А что Вы в этой части кода пытаетесь сделать?
Код
      For i = 0 To 5
          .List(i, 0) = ....(.List(i, 0))
      Next i
При открытии формы Ваш ЛистБокс пустой, и Вы пытаетесь заменить пустые значения на процент от этой пустоты
Согласие есть продукт при полном непротивлении сторон
 
Можно так
Код
For i = 0 To 5
    .List(i, 0) = FormatPercent(.List(i, 0))
Next i
но для этого в ЛистБоксе уже должны быть значения, ДО выполнения этой операции
Согласие есть продукт при полном непротивлении сторон
 
да все нормально - закомментируйте часть  все нормально отображается - но дробными числами (не процентами в ListBox)
Код
'    With Me.ListBox1
''      For i = .ListCount - 1 To 0 Step -1
'      For i = 0 To 5
''         .List(i, 0) = (Format(.List(i, 0), "0%"))
'          .List(i, 0) = Percent(.List(i, 0))
'      Next i
'    End With
Изменено: andreyka33 - 11.07.2019 22:56:47
 
тоже не прокатило
Код
With Me.ListBox1
    For i = 0 To 5
    .List(i, 0) = FormatPercent(.List(i, 0))
Next i
End With
 
Код
Private Sub UserForm_Initialize()

Dim iLastRow As Long, k As Long, i As Long
Dim myArray()
 
    With Worksheets("ИсходныеДанные")
        iLastRow = .Cells(.Rows.Count, 3).End(xlUp).Row 'последняя строка в столбец B
        myArray() = .Range("C2:C" & iLastRow).Value
    End With
    
    For k = LBound(myArray) To UBound(myArray)
        If myArray(k, 1) <> "" Then ListBox1.AddItem FormatPercent(myArray(k, 1))
    Next k
    
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Заработало  - благодарю Sanja за помощь !
Страницы: 1
Наверх