У меня возникла проблема с настройкой ширины моего рабочего бара в пользовательской форме в Excel VBA.Вычислить процентное заполнение индикатора выполнения
У меня есть пользовательская форма, и на этой форме есть метка и изображение.
Максимальная ширина изображения 330.
В моем цикле от 1 до intNumberOfGetRows (в данном случае 64) Я хочу, чтобы обновить свойство ширины изображения, чтобы показать прогресс как каждые 1000 звукозаписывающей кусок большой набор записей помещается в массив и записывается в файл csv.
Вот мой код:
For intRecord = 1 To intNumberOfGetRows + 1 ' outer loop
' put the data in an array and print to file
arrContacts = adoRsMailshotAccConData.GetRows(intRows)
With fsOutputFile
For iDx = 0 To UBound(arrContacts, 2)
.WriteLine arrContacts(0, iDx)
Next
'.Close
End With
sMsg = "Number " & intRecord & " of " & intNumberOfGetRows
Application.StatusBar = sMsg
With frmProgress
.lblProgress.Caption = sMsg
.imgProgress.Width = (intRecord/intNumberOfGetRows) * 330
DoEvents
.Repaint
End With
DoEvents
Next
когда intRecord является 13, то это должно быть около 20% изображений заполненных, что означает, что ширина изображения должна быть 66, так что я пришел с этим :
330 * (intRecord/intNumberOfGetRows * 100)/100
это выглядит так, как будто я забыл свой основной математике теории, так это то, что наилучшим образом?
спасибо за любые предложения о том, как улучшить этот
Филипп
Еще один совет: вместо того, чтобы использовать только ярлык, вы также используете текстовое поле с ним, чтобы придать ему хороший эффект. См. Этот пример http://stackoverflow.com/questions/10782394/pop-up-the-excel-statusbar/10787496#10787496 –
ах, но мое изображение имеет эффект градиента на нем от светло-голубого до синего и выглядит действительно spiffy :) –