Advertisement
Guest User

eyecandy.bas

a guest
Nov 24th, 2014
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Sub eyecandy()
  2.         'текущий файл
  3.   Dim SelectedItem
  4.         'текущая рабочая книга
  5.   Dim wb As Workbook
  6.    Dim falsespace As Range
  7.        
  8.         'вызываем диалог выбора файлов
  9.   With Application.FileDialog(msoFileDialogFilePicker)
  10.         .Title = "Выберите файлы отчетов"    'надпись в окне диалога
  11.       'путь по умолчанию к папке где расположен исходный файл, можно изменить
  12.       .InitialFileName = ThisWorkbook.Path & Application.PathSeparator & "*.csv"
  13.         .AllowMultiSelect = True    'выбор нескольких файлов разрешён
  14.       If .Show = False Then Exit Sub
  15.  
  16.         Application.ScreenUpdating = False
  17.         For Each SelectedItem In .SelectedItems    'перебор файлов в папке
  18.           'открываем книгу
  19.           Workbooks.OpenText _
  20.                 Filename:=SelectedItem, _
  21.                 Origin:=xlWindows, _
  22.                 StartRow:=1, _
  23.                 DataType:=xlDelimited, _
  24.                 TextQualifier:=xlTextQualifierNone, _
  25.                 ConsecutiveDelimiter:=False, _
  26.                 Semicolon:=True, _
  27.                 Local:=True
  28.             Set wb = ActiveWorkbook
  29.             With wb.Worksheets(1)
  30.                 'починить косяки делфийских криворучек
  31.               If wb.Name = "Местная - неоплачиваемый лимит.csv" Then _
  32.                     .Rows(2).Delete
  33.                 If wb.Name = "Местная - к оплате.csv" Then _
  34.                     .Cells(2, 4).Delete Shift:=xlShiftToLeft
  35.                 'поправить ширину столбцов
  36.               .Columns.AutoFit
  37.                 With .UsedRange
  38.                 'запилить рамки
  39.               .Borders.LineStyle = xlContinuous
  40.                 'выделить заголовки столбцов
  41.               .Rows(1).Font.Bold = True
  42.                 'выделить рамки в первом ряду
  43.               .Rows(1).Borders.Weight = xlThick
  44.                 Set falsespace = .Find(Chr(160))
  45.                 If Not falsespace Is Nothing Then
  46.                 'ИДИОТСКИЕ псевдо-запятые (кто их придумал? убейте его!)
  47.                    .Replace What:=",", Replacement:="."
  48.                 'убрать стремный символ между порядками
  49.                    .Replace What:=Chr(160), Replacement:=""
  50.                 'вернем все на круги своя
  51.                    .Replace What:=".", Replacement:=",",
  52.                 End If              
  53.                 End With
  54.             End With
  55.             wb.SaveAs Filename:=Replace(wb.FullName, ".csv", ".xls"), FileFormat:=56
  56.             wb.Close SaveChanges:=False
  57.         Next SelectedItem
  58.         Application.ScreenUpdating = True
  59.     End With
  60. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement