Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2010, 15:24   #21
Eresiarh
Пользователь
 
Регистрация: 15.01.2010
Сообщений: 31
По умолчанию

Да все верно. Открыли, выбрали лист, ячейки, закрыли с параметром true(чтоб окошко не выскочило "сохранить изменения") и все.
Eresiarh вне форума Ответить с цитированием
Старый 18.02.2010, 11:22   #22
FormAlDeGid
Пользователь
 
Аватар для FormAlDeGid
 
Регистрация: 21.10.2009
Сообщений: 58
По умолчанию

Сейчас код выглядит вот так:
Код:
Sub NextAuto_Утро_тест()
Dim FD As FileDialog, iFullFileName As String, SourceSheet As Worksheet
Dim iThisSheet As Worksheet, iNewName As String

    Set FD = Application.FileDialog(msoFileDialogFilePicker)
    With FD
        .Filters.Clear
        .Filters.Add "Текстовики ", "*.txt; *.csv"
        .Filters.Add "MS Excel", "*.xl*"
        .Filters.Add "Фсё", "*.*"
        .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path
        .Title = "Открытие документа"
        .ButtonName = "Открыть"
        If .Show = False Then
            MsgBox "Не выбрал файло!", 48, "Ошибка"
            Exit Sub
        Else
            iFullFileName = .SelectedItems(1)
        End If
    End With
    Set FD = Nothing
    Set iThisSheet = ActiveSheet
    iNewName = Left(iFullFileName, Len(iFullFileName) - 3) & "txt"
    Name iFullFileName As iNewName
    Application.ScreenUpdating = False
    Workbooks.OpenText Filename:=iNewName, StartRow:=2, DataType:=xlDelimited, Semicolon:=True
    Dim i As Long, a(), b(): Application.ScreenUpdating = False
    a = ActiveSheet.UsedRange.Value: b = Array(5, 3, 4, 6, 16, 9, 7): Cells.Delete
    [G:G].NumberFormat = "#,##0.00$": [C:C].NumberFormat = "0"
    For i = LBound(b) To UBound(b)
        Range(Cells(1, i + 1), Cells(UBound(a, 1), i + 1)) = Application.Index(a, 0, b(i))
    Next
    [G:G].HorizontalAlignment = xlRight: [A:F].HorizontalAlignment = xlLeft
    Rows(1).Font.Bold = False: Rows(1).HorizontalAlignment = xlLeft: [A:G].EntireColumn.AutoFit
    With ActiveSheet.UsedRange
        .Sort Key1:=[E1], Order1:=xlAscending, Header:=xlYes
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    End With
    For i = 2 To UBound(a, 1)
        If Left$(Cells(i, 5), 1) = "N" Then Cells(i, 5).Font.Bold = True
    Next
    Set SourceSheet = ActiveSheet
    With iThisSheet
        SourceSheet.UsedRange.Copy .Cells(.UsedRange.Rows.Count + .UsedRange.Row, "D")
    End With
    ActiveWorkbook.Close SaveChanges:=False
    Name iNewName As iFullFileName
    Application.ScreenUpdating = True
    MsgBox "Все клево!", 64, ""
    Kill iFullFileName
End Sub
Но есть одно "НО" первая строка форматированна не так как другие а именно: в столбце H нет выделения жирным а в столбце J центровка влево а не в право.
Подскажите в каком месте отсутствие моего мозга пропустило кривизну моих рук?
FormAlDeGid вне форума Ответить с цитированием
Старый 18.02.2010, 12:26   #23
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Но есть одно "НО" первая строка форматированна не так как другие а именно: в столбце H нет выделения жирным
А откуда оно там возьмётся???
Вы сначала снимаете "жирность" для всей первой строки: Rows(1).Font.Bold = False
а потом ставите её, начиная со 2-й строки:
Код:
For i = 2 To UBound(a, 1)
        If Left$(Cells(i, 5), 1) = "N" Then Cells(i, 5).Font.Bold = True
    Next
Откуда ж первая ячейка станет жирной?

Цитата:
а в столбце J центровка влево а не в право.
А где в коде написано, что должно быть вправо?
Вы же для первой строки сделали "влево"...
Rows(1).HorizontalAlignment = xlLeft
EducatedFool вне форума Ответить с цитированием
Старый 18.02.2010, 12:59   #24
FormAlDeGid
Пользователь
 
Аватар для FormAlDeGid
 
Регистрация: 21.10.2009
Сообщений: 58
По умолчанию

EducatedFool благодарю за разъяснения.

Последний раз редактировалось FormAlDeGid; 18.02.2010 в 13:23.
FormAlDeGid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись данных в файл Pti44ka Помощь студентам 5 10.12.2009 20:09
Создание книги и перенос данных листа в дргую несуществующюю книгу OgE®_M@G Microsoft Office Excel 23 13.11.2009 06:35
запись данных в файл Real Injenegr Помощь студентам 2 23.07.2009 03:21
Запись данных в файл на С# fractal Помощь студентам 15 17.02.2009 22:14
Выбор и перенос данных в другой лист, книгу. Avald Microsoft Office Excel 1 16.06.2008 10:44