Загрузка данных


Sub CreateExcelLabWork7()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    
    ' Очистка листа перед созданием
    ws.Cells.Clear
    ws.Cells.Font.Name = "Times New Roman"
    ws.Cells.Font.Size = 11
    
    ' Пункт 1.1: В ячейках A1-D1 вводим заголовки столбцов
    ws.Range("A1").Value = "Номер"
    ws.Range("B1").Value = "Наименование" & vbLf & "товара"
    ws.Range("C1").Value = "Цена"
    ws.Range("D1").Value = "Цена"
    
    ' Пункт 1.3: Форматирование заголовков (полужирный, 11 пт, по центру, в B1 в две строки)
    With ws.Range("A1:D1")
        .Font.Bold = True
        .Font.Size = 11
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
    ws.Range("B1").WrapText = True
    
    ' Пункт 1.2: Заполнение таблицы №1 (в столбец C вводим целые числа)
    Dim items As Variant
    items = Array( _
        Array(101, "Компьютер Р5-66", 999), _
        Array(102, "КомпьютерР5-100", 1500), _
        Array(103, "Компьютер 486-66", 780), _
        Array(104, "Компьютер 486-75", 819), _
        Array(201, "Принтер лазерный ОХ", 1300), _
        Array(202, "Принтер лазерный ПХ", 740), _
        Array(203, "Принтер струйный ЧБ", 299), _
        Array(204, "Принтер струйный Ц", 460), _
        Array(301, "Монитор 14”", 220), _
        Array(302, "Монитор 15”", 337), _
        Array(304, "Монитор 17”", 518) _
    )
    
    Dim i As Integer
    For i = 0 To 10
        ws.Cells(i + 2, 1).Value = items(i)(0)
        ws.Cells(i + 2, 1).HorizontalAlignment = xlLeft
        ws.Cells(i + 2, 2).Value = items(i)(1)
        ws.Cells(i + 2, 3).Value = items(i)(2)
    Next i
    
    ' Строка 13: Курс доллара
    ws.Range("A13:B13").Merge
    ws.Range("A13").Value = "Курс доллара"
    ws.Range("A13").HorizontalAlignment = xlCenter
    
    ws.Range("C13").Value = 13
    ws.Range("C13").NumberFormat = "0""р."""
    ws.Range("C13").HorizontalAlignment = xlLeft
    
    ' Пункт 1.4: Ширина столбца B по ширине текста (+ адекватная ширина остальных столбцов)
    ws.Columns("B").AutoFit
    ws.Columns("A").ColumnWidth = 9
    ws.Columns("C").ColumnWidth = 14
    ws.Columns("D").ColumnWidth = 16
    
    ' Пункт 1.5: Формула расчета цены в рублях с абсолютной ссылкой на курс ($C$13)
    ws.Range("D2:D12").Formula = "=C2*$C$13"
    
    ' Пункт 1.6: Форматы чисел для столбцов C (доллары) и D (рубли)
    ws.Range("C2:C12").NumberFormat = "[$$-409] #,##0.00"
    ws.Range("D2:D12").NumberFormat = "#,##0.00 ""р."""
    
    ' Пункт 1.7: Построение рамки (как на образце: внешние границы, шапка, подвал и вертикальные линии)
    Dim rngTable As Range
    Set rngTable = ws.Range("A1:D13")
    rngTable.Borders.LineStyle = xlNone
    
    ' Внешняя рамка всей таблицы, шапки и строки с курсом доллара
    rngTable.BorderAround LineStyle:=xlContinuous, Weight:=xlThin
    ws.Range("A1:D1").BorderAround LineStyle:=xlContinuous, Weight:=xlThin
    ws.Range("A13:D13").BorderAround LineStyle:=xlContinuous, Weight:=xlThin
    
    ' Вертикальные линии между столбцами A, B, C, D в основной части (строки 1-12)
    ws.Range("A1:D12").Borders(xlInsideVertical).LineStyle = xlContinuous
    ws.Range("A1:D12").Borders(xlInsideVertical).Weight = xlThin
End Sub