Здравствуйте! Прошу помочь с переработкой макроса для рабочей деятельности под Luo, так как с этим языком не знаком. Спасибо за помощь! Прикрепляю макрос в документах.
Здравствуйте. Прошу подсказать в улучшении (упрощении) макроса, использую его для переворота таблиц. В чем суть переворота: 1) В каждую таблицу добавляется столбец с помощью одного из макросов, куда в дальнейшем переносится название листа и протягивается на всю длину столбца где есть данные (листов в документах от 60 до 90 - каждый документ по разному) 2) А затем происходит переворот другим макросом В примере привел пример, как выглядит исходник, потом после добавление столбца и в итоговом виде. Примечание:1) Количество строк в каждом листе отличается от 2 до 20 (это примерно) - каждый раз по разному 2) Количество листов тоже меняется в каждом документе 3) Шапка всегда тоже меняется, все зависит от базы (поэтому макрос при перевороте спрашивает сколько столбцов и строк нужно) Буду благодарен любой помощи!
Приветствую, прошу помочь с решением проблемы с макросом. Условие: есть таблица на 100 листов ( примерно), каждый лист имеет свой код уникальный (название листа) и каждый лист по структуре одинаковый, только данные внутри таблицы разные. Нужно:
Сделать редизайн таблицы, как приведено в примере, всех листов
Перенести номер листа в таблицу в столбец и протянуть на всю длину таблицы
Привожу мой код, он только переносит один столбец, а второй удаляет.... Спасибо большое за помощь!
Код
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
Здравствуйте, не поможете, есть макрос для редизайна таблицы, но в Ексель около 10-15 листов, не получается написать макрос, чтоб мой макрос выполнялся на всех листах. Буду благодарен за помощь. (макрос, который я пытался сделать для выполнения на всех листах)
Код
for I=1 to sheets.count
if worksheets(i).name<> ""then
end if
next I
Здравствуйте! прошу подсказать, как дописать макрос, чтобы после использования его не менялся формат ячеек? То после использование ячейки меняют формат либо знаки в самой ячейке, к примеру, изначально была ячейка "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
Здравствуйте! Прошу подсказать, как можно решить такой вопрос. Подскажите с макросом, который будет делать следующие шаги:-Находит нужную строку (строки) в массиве данных по определённому слову - Дублирует данную строку полностью (строки) - Переименовывает слово (по которому был сделан поиск) на требуемое (задается пользователем) На примере прикрепляю файл: Таблица с "было" и "стало", где был сделан поиск по слову "1 кв", далее строки были продублированы и переименованы на "1 кв.н". Спасибо большое за помощь заранее!
Смещение строк в столбец (как продолжение строки) под динамическое количество строк, Макрос для смещение строк в столбец, чтоб была группировки от названия столбца
Приветствую! Прошу помочь в макросе для таблицы. Дана таблица с данными, ее надо пересобрать, под нужный вид. В начале каждой группы данных идет название группы, ее надо сместить, как продолжение строки у каждой строки этой группы (пример приведен в закрепленном файле). Загвоздка в том, что количество строк в каждом группе разное, есть только рамки - код каждой группы (A, B, C, D И так далее). Прошу помочь с данной загвоздкой...Спасибо большое!
Здравствуйте! Прошу подсказать, как можно с помощью макроса сделать так, чтобы название листа было перенесено в ячейку таблицы. Так же протянуто в столбце вдоль других значений (как продолжение строки). И шапка была удалена после выполнение макроса. Так по всем листам данного файла. Спасибо большое за помощь! Прикладываю пример как должен быть
Здравствуйте! Прошу помочь с макросом, есть макрос по объединению всех листов в один, но при объединении теряются строки из других листов.При объединении строки должны идти друг за другом в столбик.
Код
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, чтобы из из ячейки Х (шапка) значение было перемещено в столбцы 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)