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

Страницы: 1
Макрос из VBA в Lua, Переработать макрос из VBA в Lua
 
Здравствуйте! Прошу помочь с переработкой макроса для рабочей деятельности под Luo, так как с этим языком не знаком. Спасибо за помощь! Прикрепляю макрос в документах.
Изменено: gefy 444 - 28.03.2023 12:16:52
Помощь в улучшении макроса, Комбинирование в один макрос из нескольких
 
Здравствуйте. Прошу подсказать в улучшении (упрощении) макроса, использую его для переворота таблиц.
В чем суть переворота:
1) В каждую таблицу добавляется столбец с помощью одного из макросов,  куда в дальнейшем переносится название листа и протягивается на всю длину столбца где есть данные (листов в документах от 60 до 90 -  каждый документ по разному)
2) А затем происходит переворот другим макросом
В примере привел пример, как выглядит исходник, потом после добавление столбца и в итоговом виде.
Примечание:1) Количество строк в каждом листе отличается от 2 до 20 (это примерно) - каждый раз по разному
2) Количество листов тоже меняется в каждом документе
3) Шапка всегда тоже меняется, все зависит от базы (поэтому макрос при перевороте спрашивает сколько столбцов и строк нужно)
Буду благодарен любой помощи!
Перенос названия листа в таблицу и редизайн самой таблицы под условия, Прошу помочь как переделать макрос под условия
 
Приветствую, прошу помочь с решением проблемы с макросом.
Условие: есть таблица на 100 листов ( примерно), каждый лист имеет свой код уникальный (название листа) и каждый лист по структуре одинаковый, только данные внутри таблицы разные.
Нужно:
  1. Сделать редизайн таблицы, как приведено в примере, всех листов
  2. Перенести номер листа в таблицу в столбец и протянуть на всю длину таблицы
Привожу мой код, он только переносит один столбец, а второй удаляет....
Спасибо большое за помощь!
Код
Sub НазваниеЛистаНаЛист()

    Dim sh As Worksheet

    For Each sh In ActiveWorkbook.Worksheets

        JobSheet sh

    Next

End Sub

Sub JobSheet(sh As Worksheet)

    With sh

        Dim yy As Long

        yy = .Cells(.Rows.Count, 1).End(xlUp).Row

        If yy >
4 Then

            .Range(.Cells(5, 3), .Cells(yy, 4)).Value
= Array(.Range("B3").Value, .Name)

            .Rows("1:4").Delete Shift:=xlUp

        End If

    End With

End Sub
Редизайн таблицы с данными, Перестроить таблицу с данными под условия
 
Здравствуйте, прошу подсказать в ситуации, есть таблицы с исходными данными, но она сформирована в сплошном формате (где категории и их элементы отображены в одном столбце), прошу подсказать макрос, который может перенести название категорий в отдельный столбец и протянуть до названия следующей категории?(пример прикреплен), элементов внутри каждой категории 94, мб поможет (1 строка название категории, последующие 94 элементы ее, затем  96 строка - название категории И так далее)Спасибо большое!
Макрос для редизайнера на все страницы файла, Прошу помочь с кодом для редизайна таблиц для всего файла
 
Здравствуйте! Есть файл с небольшим количеством листов (10 примерно), у меня есть макрос, только выдает ошибку при запуске.В чем суть макроса, требуется произвести редизайна на всех листах файлах (условия редизайна одинаковы для всех листов). Условия задаются уже в макросе (выбрать область (область, количество строк сверху, столбцов слева). В чем ошибка? Буду благодарен, если так же подскажите как дописать, чтобы область он определял по кол-ву заполненный полей 1 строки и 1 столбца.
Код
Sub Redesigner()
    Dim inpdata As Range, realdata As Range, ns As Worksheet
    Dim i&, j&, k&, c&, r&, hc&, hr&
    Dim out() As String, dataArr, hcArr, hrArr
    
    For Each ws In Worksheets
  With ws
     Set inpdata = ThisWorkbook.Application.InputBox( _
   prompt:="¬ыберите обрабатываемый диапазон:", Title:="¬ыбор диапазона", Type:=8)
    
   hr = Val(InputBox("—колько строк с подпис€ми сверху?"))
   hc = Val(InputBox("—колько столбцов с подпис€ми слева?"))

   
    If inpdata.Rows.Count <= hr Or inpdata.Columns.Count <= hc Then Exit Sub
    Set realdata = inpdata.Offset(hr, hc).Resize(inpdata.Rows.Count - hr, inpdata.Columns.Count - hc)
    dataArr = realdata.Value
    If hr Then hrArr = inpdata.Offset(0, hc).Resize(hr, inpdata.Columns.Count - hc).Value
    If hc Then hcArr = inpdata.Offset(hr, 0).Resize(inpdata.Rows.Count - hr, hc).Value
    
    ReDim out(1 To Application.CountA(realdata), 1 To hr + hc + 1)
    Set ns = Worksheets.Add
    
    For i = 1 To UBound(dataArr, 1)
        For j = 1 To UBound(dataArr, 2)
            If Not IsEmpty(dataArr(i, j)) Then
                k = k + 1
                For c = 1 To hc: out(k, c) = hcArr(i, c): Next c
                For r = 1 To hr: out(k, c + r - 1) = hrArr(r, j): Next r
                out(k, c + r - 1) = dataArr(i, j)
            End If
    Next j, i
    ns.Cells(2, 1).Resize(UBound(out, 1), UBound(out, 2)) = out
    End with ws
    Next ws
End Sub


Изменено: gefy 444 - 27.05.2022 14:23:52
Макрос для выполнение нужного макроса на всех листах файлах, Помочь с решением с кодом по макросу, который будет выполнять макрос на всех листах файла
 
Здравствуйте, не поможете, есть макрос для редизайна таблицы, но в Ексель около 10-15 листов, не получается написать макрос, чтоб мой макрос выполнялся на всех листах. Буду благодарен за помощь. (макрос, который я пытался сделать для выполнения на всех листах)
Код
for I=1 to sheets.count
if worksheets(i).name<> ""then

end if
next I
Изменено: gefy 444 - 27.05.2022 13:32:02
Сохранение формата ячеек, Сохранить формат ячеек после использования макроса
 
Здравствуйте! прошу подсказать, как дописать макрос, чтобы после использования его не менялся формат ячеек? То после использование ячейки меняют формат либо знаки в самой ячейке, к примеру, изначально была ячейка "12.2" после использования макроса формат ячейки стал "12,2" либо "12 янв." Прикрепляю код и пример:
Код
Sub Redesigner()    
Dim inpdata As Range, realdata As Range, ns As Worksheet    
Dim i&, j&, k&, c&, r&, hc&, hr&    
Dim out(), dataArr, hcArr, hrArr        
Set inpdata = ThisWorkbook.Application.InputBox( _   prompt:="Выберите обрабатываемый диапазон:", Title:="Выбор диапазона", Type:=8)       
hr = Val(InputBox("Сколько строк с подписями сверху?"))   
hc = Val(InputBox("Сколько столбцов с подписями слева?"))       
If inpdata.Rows.Count <= hr Or inpdata.Columns.Count <= hc Then Exit Sub    
Set realdata = inpdata.Offset(hr, hc).Resize(inpdata.Rows.Count - hr, inpdata.Columns.Count - hc)    
dataArr = realdata.Value    If hr Then hrArr = inpdata.Offset(0, hc).Resize(hr, inpdata.Columns.Count - hc).Value    
If hc Then hcArr = inpdata.Offset(hr, 0).Resize(inpdata.Rows.Count - hr, hc).Value        
ReDim out(1 To Application.CountA(realdata), 1 To hr + hc + 1)    
Set ns = Worksheets.Add        
For i = 1 To UBound(dataArr, 1)        
For j = 1 To UBound(dataArr, 2)            
If Not IsEmpty(dataArr(i, j)) Then                
k = k + 1                
For c = 1 To hc: out(k, c) = hcArr(i, c): Next c                
For r = 1 To hr: out(k, c + r - 1) = hrArr(r, j): Next r                
out(k, c + r - 1) = dataArr(i, j)            
End If    Next j, I    
ns.Cells(2, 1).Resize(UBound(out, 1), 
UBound(out, 2)) = out
End Sub
Изменено: gefy 444 - 26.05.2022 15:43:35
Дублирование строки под нужное условие, Производит дублирование всей строки, находит под условие
 
Здравствуйте! Прошу подсказать, как можно решить такой вопрос. Подскажите с макросом, который будет делать следующие шаги:-Находит нужную строку (строки) в массиве данных по определённому слову
- Дублирует данную строку полностью (строки)
- Переименовывает слово (по которому был сделан поиск) на требуемое (задается пользователем)
На примере прикрепляю файл:
Таблица с "было" и "стало", где был сделан поиск по слову "1 кв", далее строки были продублированы и переименованы на "1 кв.н".
Спасибо большое за помощь заранее!
Смещение строк в столбец (как продолжение строки) под динамическое количество строк, Макрос для смещение строк в столбец, чтоб была группировки от названия столбца
 
Приветствую! Прошу помочь в макросе для таблицы. Дана таблица с данными, ее надо пересобрать, под нужный вид. В начале каждой группы данных идет название группы, ее надо сместить, как продолжение строки у каждой строки этой группы (пример приведен в закрепленном файле). Загвоздка в том, что количество строк в каждом группе разное, есть только рамки - код каждой  группы (A, B, C, D И так далее). Прошу помочь с данной загвоздкой...Спасибо большое!
Изменено: gefy 444 - 27.04.2022 09:51:45
Макрос для переноса название листа в ячейку таблицы, Макрос, чтобы название листа было перенесено в ячейку таблицы
 
Здравствуйте! Прошу подсказать, как можно с помощью макроса сделать так, чтобы название листа было перенесено в ячейку таблицы. Так же протянуто в столбце вдоль других значений (как продолжение строки). И шапка была удалена после выполнение макроса. Так по всем листам данного файла. Спасибо большое за помощь! Прикладываю пример как должен быть
Макрос для объединения всех листов в Екселе, Макрос чтобы объединить все листы в один в файле Ексель
 
Здравствуйте! Прошу помочь с макросом, есть макрос по объединению всех листов в один, но при объединении теряются строки из других листов.При объединении строки должны идти друг за другом в столбик.
Код
Sub CollectDataFromAllSheets()    
Dim ws As Worksheet       
 Set wbCurrent = ActiveWorkbook   
 Workbooks.Add    
Set wbReport = ActiveWorkbook    
  wbCurrent.Worksheets(1).Range("A1:D1").Copy Destination:=wbReport.Worksheets(1).Range("A1")       
 For Each ws In wbCurrent.Worksheets          
 n = wbReport.Worksheets(1).Range("A1").CurrentRegion.Rows.Count                
     Set rngData = ws.Range("A1:D5")            
     Set rngData = ws.UsedRange                    
Set rngData = ws.Range("F5").CurrentRegion    
    Set rngData = ws.Range("A1", ws.Range("A1").SpecialCells(xlCellTypeLastCell))    
    rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1)          
  Next ws
End Sub
Макрос для смещения шапки в столбец, Макрос, чтобы название шапки было смещено в столбец (как продолжение строк с данными)
 
Приветствую! Помогите с макросом для Excel, чтобы из из ячейки Х (шапка) значение было перемещено в столбцы D и E (и продублировано вниз по столбцу пока есть в строках слева - данные), как продолжение строки ранее написанных элементов.
А возможно, чтоб название столбцов "после применения макроса" удалялись и применялось на все листы в файле Excel. Прикрепил файл, как пример "до" и "после"
[ Закрыто] Макрос для excel, Требуется макрос для Excel под формирование таблицы
 
Приветствую, хочу мнение людей знающий о макросах! Требуется макрос для Excel, чтобы из из ячейки Х (шапка) значение было перемещено в столбцы D и E (и продублировано вниз по столбцу пока есть в строках слева есть данные), как продолжение строки ранее написанных элементов. Есть код на Python, чтоб понятнее был смысл требуемого.
Код
import pandas as pd
import xlrd as xl

lnk = ""

def read_doc(source):
    res_d = list()

    sheets = pd.ExcelFile(source) .sheet_names
    for i in sheets:
        frame = pd.read_excel(source, sheet_name=i)
        frame['D'] = frame.values[0][0]
        frame['E'] = frame.values[1][0]
        res_d.append(frame[4:])
    res = pd.concat(res_d)
    res.to_excel('out.xls', index=False)

    return True

get_label(lnk)

Буду признателен любой помощи!
Изменено: gefy 444 - 02.04.2022 11:14:43
Страницы: 1
Наверх