Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Cобрать данные из столбца в строку
 
Добрый день.
Подскажите как реализовать следующее:
Есть красивая таблица где каждый объект представлен одной строкой с и значениями разбитыми по годам.
И есть плоская таблица в 1-ом столбце повторяющиеся объекты , 2 столбец, например, года и 3 столбец - значения.
Как макросом реализовать заполнение 1 таблицы из второй?
Т.е. что-то вроде формирования сводной таблицы, но не на чистом листе.
Как преобразовать часть кода в подпрограмму с параметрами?
 
Добрый день.
Подскажите как правильно обратится к подпрограмме, и следовательно как задать в ней параметры?
Значит задачка: есть следующий код:
Код
Set findT = Worksheets(i).Range("B:D").Find("Текст", , xlValues, xlPart)
...
Set cellcop_2_ = findT.Offset(, 4)
Union(cellcop_2_, cellcop_2_.Offset(, 2), cellcop_2_2, cellcop_2_2.Offset(, 2)).Copy
Хочется вторую часть (с копированием ячеек) убрать в подпрограмму, которой нужно будет передавать параметры findT и параметры Offset
Вставка строки снизу
 
Добрый день.
Подскажите как вставить строку снизу той на которой я сейчас нахожусь?
Например идет цикл по строкам и мне нужно вставить строку после строки i
Но при использовании Insert с разными атрибутами строка вставляется перед строкой i
Код
Rows(i).Insert (xlShiftDown)
Rows(i).Insert (xlShiftUp)

Изменить начало отсчета массива с 0 на 1
 
Создаю из строки через Split массив:
Код
Dim arrP() As String
P = "P20 P44 P64 P83"
arrP = Split(P)
Но мне нужно что бы элементы массива отсчитывались не от 0, а от 1.
option base - не срабатывает.
Пытаюсь переопределить командой
Код
ReDim Preserve arrP(1 To 4)
выпадает с ошибкой subscript out of range.
Если переопределить массив вначале, то после срабатывания Split , элементы опять начинаются с 0.
Копирование диапазона в несколько книг
 
Добрый день.
Есть книга с "Умной таблицей".
Мне нужно сохранить значения некоторых столбцов из таблицы в разные csv.
Потыкал гугл и форум, сделал такой макрос, для начала просто один и тот же диапазон в разных csv что бы сохранил:
Код
Sub test()

Dim f
Dim r As ListObject
Dim rr As Range, r1 As Range
Dim cFileName  As String
Dim wb As Workbook, newwb As Workbook, sh As Worksheet, newsh As Worksheet
Dim i As Long, j As Long
        
Application.ScreenUpdating = False
        
Set wb = ActiveWorkbook
Set sh = ActiveSheet
Set r = sh.ListObjects("Таблица1")
Set r1 = r.Range
Set newwb = Workbooks.Add
Set newsh = newwb.Sheets(1)
        
For i = 1 To 2
    f = i * 100 + 20
    cFileName = f & ""
    If sh.Range("M2").Value = "Зима" Then
 
        With r
            Set rr = Union(.ListColumns("sta").DataBodyRange, .ListColumns("P20").DataBodyRange, .ListColumns("Q20").DataBodyRange)
        End With
       
    Else
        newwb.Close savechanges:=False
        MsgBox ("Проверить наименование")
End If
    rr.Copy
    newsh.Cells(1, 1).Select
    ActiveSheet.Paste
    If InStr(1, cFileName, "\") = 0 Then cFileName = wb.Path & "\" & cFileName
             
    Application.DisplayAlerts = False
    newwb.SaveAs Filename:=(cFileName), FileFormat:=xlCSVWindows, CreateBackup:=False, local:=True
    Application.DisplayAlerts = True
    newwb.Close savechanges:=False
Next
End Sub
На первой итерации все норм, а на второй на строчке newsh.Cells(1, 1).Select, выдает ошибку run-time error '-2147221080 (800401a8)':  automation error

Подскажите что не так? Как правильнее сохранять разные значения из одной таблицы в разных файлах?
Данные по столбцам, Трансформация данных из столбцов
 
Добрый день.
Подскажите возможно ли и как обработать таблицу автоматически, с помощью макроса, формул и т.п., что бы получилось следующее:
Например, есть таблица с двумя столбцами: в столбце А - фамилия, в B - имя. Фамилии повторяются. Нужно что бы в столбце А не было повторений фамилий, а в столбцах от B и дальше были все имена принадлежащие этой фамилии.  
Для наглядности прикрепляю файл.
Диапазон ячеек из xls в csv, макрос
 
Добрый день.
Подскажите как правильно скорректировать макрос во вложении.
Необходимо из двух листов книги брать данные из определенных диапазонов и сохранять их в два разных csv.
Сохранять получается, но только если не закрывать данные файлы, если после сохранения их закрывать, то сбивается формат csv: необходимо разделитель ";", а он делает ",".
макрос копирования диапазона ячеек, Скопировать нижние ячейки в соседнии
 
Добрый день.
Подскажите с написанием макроса.
Есть два столбца заполненные данными, нужно скопировать значения через две строчки в правые столбцы.
Простит не знаю как точно сформулировать)
Прикладываю пример для понимания.
Вставка определенных данных в определенный лист
 
Добрый день.
Есть таблица с данными и макрос, который разносит данные из таблицы по определенным листам.
Как дополнить макрос, что бы он сопоставлял какие данные вставлять в какой лист по названию из второй строки "Лист1"?  
Макрос Вставка значений на другие листы, Подскажите как лучше сделать
 
Есть таблица на листе с ключевым полем Id, и значениями в других столбцах, диапозоном А7:D7 в количество столбцов, строк не особо важно сколько.
Мне необходимо в другие листы вставить данные из столбца А (тут все просто) и данные из столбцов B-D, каждый столбец на новый лист.
Вот как это лучше реализовать я и не могу придумать.
Есть варианты:
1. Вставить по формуле ВПР, ориентируясь на значения Id
2. Вставить просто по ссылку на ячейку из Лист1
3. Просто копировать диапазон необходимого столбца с Лист1 и вставлять его на новый лист.
Макрос вставки листов с проверкой названий листов
 
Добрый день!
Помогите пожалуйста с кодом.
Есть макрос, который вставляет листы с определенным названием:
Код
Sub test()
Dim wh As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
For i = 1 To 2
    m = i +100 
    For Each wh In Worksheets
         If wh.Name = m Then
            Sheets(m).Select
            Cells.Clear
         End If
    Next
    Worksheets.Add().Name = m
    АctiveSheet.Move After:=Sheets(ActiveWorkbook.Sheets.Count)
Next i
End Sub

Сейчас он, если уже есть лист с названием "101", он его очищает, потом создает "Лист2", потом создает лист "102" и завершается.
Как исправить, что бы если лист с названием m уже существует, он его очищал и переходил к созданию листа с названием "m+1", а не "Лист2"?
Страницы: 1
Наверх