Function fnExpExl()
Dim bstFileName As String
Dim WBObj As New Excel.Workbook
Dim i As Integer, j As Integer
Dim s As String
bstFileName = VB.App.Path & "\data_" & _
VBA.Format$(Date, "dd_mm_yy") & _
".xls"
Set WBObj = XLObj.Workbooks.Add
With WBObj.ActiveSheet
' Вывод заголовков
For i = 0 To MSFlexGrid1.Cols - 1
Cells(1, i + 1).Font.Bold = True ' Жирным
Cells(1, i + 1).Interior.ColorIndex = 17 ' Цвет ячейки
Cells(1, i + 1).HorizontalAlignment = xlCenter ' По центру
Cells(1, i + 1).ColumnWidth = 17.71 ' Ширина
Cells(1, i + 1).Value = CStr(MSFlexGrid1.TextMatrix(0, i)) ' Здесь значения в строку преобразовываются
Next
' Вывод остального
For i = 0 To MSFlexGrid1.Cols - 1
For j = 0 To MSFlexGrid1.Rows - 1
Cells(1, i + 1).ColumnWidth = 12.14 ' - Выставляется ширина столбца
Cells(j + 1, i + 1).Value = CDbl(MSFlexGrid1.TextMatrix(j, i)) ' У меня числа были с фиг знает сколькими нулями и Эксель выдавал всяк фигню, поэтому в double
Next
Next
End With
XLObj.DisplayAlerts = False
WBObj.SaveAs bstFileName ' Сохранение файла
XLObj.Quit
MsgBox "Файл сохранен в " & bstFileName
End Function
GB826 писал(а): А если в обычных ячейках строки (или даты, например), а не только в заголовках.
Так что лучше через CreateObject, и с обработкой ошибок!
.Cells(j + 1, i + 1).Value = CDbl(MSFlexGrid1.TextMatrix(j, i))
разница-то какая что экспортировать. можно, конечно, принудительно установить тот или иной формат в ячейке экселя
GB826 писал(а):CDbl не пугает?
Сейчас этот форум просматривают: AhrefsBot и гости: 100