Макрос_калькуляция стоимости
Мурад
Дата: Понедельник, 17.11.2014, 15:10 |
Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
Ребята, привет! Записал макрос для выполнения однотипных действий в нескольких книгах. В книге экземпляр находится форма таблицы, которую нужно вставить в каждую открываемую книгу, в новую форму переносятся данные из старой таблицы в каждом листе. Проблема в том, что затем, при запуске макроса, он останавливается на этапе копирования формы таблицы из файла экземпляр, плюс в каждой книге разное число листов, у них разные названия. Указанный ниже макрос копировал мои действия на примере. Помогите доработать текст макроса. [vba]Код
Sub Калькуляция() ' ' Калькуляция Макрос ' ' Сочетание клавиш: Ctrl+r ' Sheets.Select Sheets(1).Activate Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Windows("экземпляр.xlsx").Activate Range("A1:D31").Select Selection.Copy Windows("Калькуляция Азов.xls").Activate ActiveWindow.SmallScroll Down:=-9 Range("A1").Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ActiveSheet.Paste ActiveWindow.SmallScroll Down:=33 Range("D48").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "1" Range("D49").Select ActiveCell.FormulaR1C1 = "2" Range("D48:D49").Select ActiveWindow.SmallScroll Down:=9 Selection.AutoFill Destination:=Range("D48:D59"), Type:=xlFillDefault Range("D48:D59").Select ActiveWindow.SmallScroll Down:=-51 Range("A2").Select ActiveWindow.SmallScroll Down:=24 ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A4").Select ActiveWindow.SmallScroll Down:=24 ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A5").Select ActiveWindow.SmallScroll Down:=-9 Range("A7").Select ActiveWindow.SmallScroll Down:=27 ActiveCell.FormulaR1C1 = "=R[35]C[1]" Range("A8").Select ActiveWindow.SmallScroll Down:=-9 Range("B15").Select ActiveWindow.SmallScroll Down:=30 ActiveCell.FormulaR1C1 = "=R[33]C" Range("B16").Select ActiveWindow.SmallScroll Down:=-9 Range("B18").Select ActiveWindow.SmallScroll Down:=33 ActiveCell.FormulaR1C1 = "=R[31]C" Range("B19").Select ActiveWindow.SmallScroll Down:=33 ActiveCell.FormulaR1C1 = "=R[38]C" Range("B20").Select ActiveWindow.SmallScroll Down:=18 ActiveCell.FormulaR1C1 = "=R[31]C" Range("B21").Select ActiveWindow.SmallScroll Down:=27 ActiveCell.FormulaR1C1 = "=R[38]C" Range("B22").Select ActiveWindow.SmallScroll Down:=12 ActiveCell.FormulaR1C1 = "=R[28]C" Range("B23").Select ActiveWindow.SmallScroll Down:=-12 Range("B24").Select ActiveWindow.SmallScroll Down:=39 ActiveCell.FormulaR1C1 = "=R[32]C" Range("B25").Select ActiveWindow.SmallScroll Down:=21 ActiveCell.FormulaR1C1 = "=R[27]C+R[28]C+R[29]C+R[30]C" Range("B26").Select ActiveWindow.SmallScroll Down:=-9 Range("B27").Select ActiveWindow.SmallScroll Down:=27 ActiveCell.FormulaR1C1 = "=R[31]C" Range("B28").Select ActiveWindow.SmallScroll Down:=-57 Range("A1:D31").Select ActiveWindow.SmallScroll Down:=-24 Range("B14:D28").Select Selection.NumberFormat = "#,##0.00" Range("A1:D31").Select ActiveWindow.SmallScroll Down:=-42 Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWindow.SmallScroll Down:=24 Rows("32:42").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp ActiveWindow.SmallScroll Down:=-48 Range("A1").Select ActiveWindow.SmallScroll Down:=-12 End Sub
[/vba]
Ребята, привет! Записал макрос для выполнения однотипных действий в нескольких книгах. В книге экземпляр находится форма таблицы, которую нужно вставить в каждую открываемую книгу, в новую форму переносятся данные из старой таблицы в каждом листе. Проблема в том, что затем, при запуске макроса, он останавливается на этапе копирования формы таблицы из файла экземпляр, плюс в каждой книге разное число листов, у них разные названия. Указанный ниже макрос копировал мои действия на примере. Помогите доработать текст макроса. [vba]Код
Sub Калькуляция() ' ' Калькуляция Макрос ' ' Сочетание клавиш: Ctrl+r ' Sheets.Select Sheets(1).Activate Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Windows("экземпляр.xlsx").Activate Range("A1:D31").Select Selection.Copy Windows("Калькуляция Азов.xls").Activate ActiveWindow.SmallScroll Down:=-9 Range("A1").Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ActiveSheet.Paste ActiveWindow.SmallScroll Down:=33 Range("D48").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "1" Range("D49").Select ActiveCell.FormulaR1C1 = "2" Range("D48:D49").Select ActiveWindow.SmallScroll Down:=9 Selection.AutoFill Destination:=Range("D48:D59"), Type:=xlFillDefault Range("D48:D59").Select ActiveWindow.SmallScroll Down:=-51 Range("A2").Select ActiveWindow.SmallScroll Down:=24 ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A4").Select ActiveWindow.SmallScroll Down:=24 ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A5").Select ActiveWindow.SmallScroll Down:=-9 Range("A7").Select ActiveWindow.SmallScroll Down:=27 ActiveCell.FormulaR1C1 = "=R[35]C[1]" Range("A8").Select ActiveWindow.SmallScroll Down:=-9 Range("B15").Select ActiveWindow.SmallScroll Down:=30 ActiveCell.FormulaR1C1 = "=R[33]C" Range("B16").Select ActiveWindow.SmallScroll Down:=-9 Range("B18").Select ActiveWindow.SmallScroll Down:=33 ActiveCell.FormulaR1C1 = "=R[31]C" Range("B19").Select ActiveWindow.SmallScroll Down:=33 ActiveCell.FormulaR1C1 = "=R[38]C" Range("B20").Select ActiveWindow.SmallScroll Down:=18 ActiveCell.FormulaR1C1 = "=R[31]C" Range("B21").Select ActiveWindow.SmallScroll Down:=27 ActiveCell.FormulaR1C1 = "=R[38]C" Range("B22").Select ActiveWindow.SmallScroll Down:=12 ActiveCell.FormulaR1C1 = "=R[28]C" Range("B23").Select ActiveWindow.SmallScroll Down:=-12 Range("B24").Select ActiveWindow.SmallScroll Down:=39 ActiveCell.FormulaR1C1 = "=R[32]C" Range("B25").Select ActiveWindow.SmallScroll Down:=21 ActiveCell.FormulaR1C1 = "=R[27]C+R[28]C+R[29]C+R[30]C" Range("B26").Select ActiveWindow.SmallScroll Down:=-9 Range("B27").Select ActiveWindow.SmallScroll Down:=27 ActiveCell.FormulaR1C1 = "=R[31]C" Range("B28").Select ActiveWindow.SmallScroll Down:=-57 Range("A1:D31").Select ActiveWindow.SmallScroll Down:=-24 Range("B14:D28").Select Selection.NumberFormat = "#,##0.00" Range("A1:D31").Select ActiveWindow.SmallScroll Down:=-42 Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWindow.SmallScroll Down:=24 Rows("32:42").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp ActiveWindow.SmallScroll Down:=-48 Range("A1").Select ActiveWindow.SmallScroll Down:=-12 End Sub
[/vba] Мурад
Ответить
Сообщение Ребята, привет! Записал макрос для выполнения однотипных действий в нескольких книгах. В книге экземпляр находится форма таблицы, которую нужно вставить в каждую открываемую книгу, в новую форму переносятся данные из старой таблицы в каждом листе. Проблема в том, что затем, при запуске макроса, он останавливается на этапе копирования формы таблицы из файла экземпляр, плюс в каждой книге разное число листов, у них разные названия. Указанный ниже макрос копировал мои действия на примере. Помогите доработать текст макроса. [vba]Код
Sub Калькуляция() ' ' Калькуляция Макрос ' ' Сочетание клавиш: Ctrl+r ' Sheets.Select Sheets(1).Activate Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Windows("экземпляр.xlsx").Activate Range("A1:D31").Select Selection.Copy Windows("Калькуляция Азов.xls").Activate ActiveWindow.SmallScroll Down:=-9 Range("A1").Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ActiveSheet.Paste ActiveWindow.SmallScroll Down:=33 Range("D48").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "1" Range("D49").Select ActiveCell.FormulaR1C1 = "2" Range("D48:D49").Select ActiveWindow.SmallScroll Down:=9 Selection.AutoFill Destination:=Range("D48:D59"), Type:=xlFillDefault Range("D48:D59").Select ActiveWindow.SmallScroll Down:=-51 Range("A2").Select ActiveWindow.SmallScroll Down:=24 ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A4").Select ActiveWindow.SmallScroll Down:=24 ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A5").Select ActiveWindow.SmallScroll Down:=-9 Range("A7").Select ActiveWindow.SmallScroll Down:=27 ActiveCell.FormulaR1C1 = "=R[35]C[1]" Range("A8").Select ActiveWindow.SmallScroll Down:=-9 Range("B15").Select ActiveWindow.SmallScroll Down:=30 ActiveCell.FormulaR1C1 = "=R[33]C" Range("B16").Select ActiveWindow.SmallScroll Down:=-9 Range("B18").Select ActiveWindow.SmallScroll Down:=33 ActiveCell.FormulaR1C1 = "=R[31]C" Range("B19").Select ActiveWindow.SmallScroll Down:=33 ActiveCell.FormulaR1C1 = "=R[38]C" Range("B20").Select ActiveWindow.SmallScroll Down:=18 ActiveCell.FormulaR1C1 = "=R[31]C" Range("B21").Select ActiveWindow.SmallScroll Down:=27 ActiveCell.FormulaR1C1 = "=R[38]C" Range("B22").Select ActiveWindow.SmallScroll Down:=12 ActiveCell.FormulaR1C1 = "=R[28]C" Range("B23").Select ActiveWindow.SmallScroll Down:=-12 Range("B24").Select ActiveWindow.SmallScroll Down:=39 ActiveCell.FormulaR1C1 = "=R[32]C" Range("B25").Select ActiveWindow.SmallScroll Down:=21 ActiveCell.FormulaR1C1 = "=R[27]C+R[28]C+R[29]C+R[30]C" Range("B26").Select ActiveWindow.SmallScroll Down:=-9 Range("B27").Select ActiveWindow.SmallScroll Down:=27 ActiveCell.FormulaR1C1 = "=R[31]C" Range("B28").Select ActiveWindow.SmallScroll Down:=-57 Range("A1:D31").Select ActiveWindow.SmallScroll Down:=-24 Range("B14:D28").Select Selection.NumberFormat = "#,##0.00" Range("A1:D31").Select ActiveWindow.SmallScroll Down:=-42 Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWindow.SmallScroll Down:=24 Rows("32:42").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp ActiveWindow.SmallScroll Down:=-48 Range("A1").Select ActiveWindow.SmallScroll Down:=-12 End Sub
[/vba] Автор - Мурад Дата добавления - 17.11.2014 в 15:10
Мурад
Дата: Понедельник, 17.11.2014, 15:26 |
Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
Забыл уточнить, что мне пришлось немного отредактировать макрос. Так, название первого листа я поменял на 1, т.к. получались иероглифы.
Забыл уточнить, что мне пришлось немного отредактировать макрос. Так, название первого листа я поменял на 1, т.к. получались иероглифы. Мурад
Ответить
Сообщение Забыл уточнить, что мне пришлось немного отредактировать макрос. Так, название первого листа я поменял на 1, т.к. получались иероглифы. Автор - Мурад Дата добавления - 17.11.2014 в 15:26
Мурад
Дата: Понедельник, 17.11.2014, 17:00 |
Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
вроде задача нетрудная, но я запутался в каком месте использовать коллекции и как вытащить форму таблицы из другого файла. как затем переместиться в другой файл и выполнить указанный ряд операций, начиная с вставки 30 строк (указано в тексте макроса)
вроде задача нетрудная, но я запутался в каком месте использовать коллекции и как вытащить форму таблицы из другого файла. как затем переместиться в другой файл и выполнить указанный ряд операций, начиная с вставки 30 строк (указано в тексте макроса) Мурад
Сообщение отредактировал Мурад - Понедельник, 17.11.2014, 17:02
Ответить
Сообщение вроде задача нетрудная, но я запутался в каком месте использовать коллекции и как вытащить форму таблицы из другого файла. как затем переместиться в другой файл и выполнить указанный ряд операций, начиная с вставки 30 строк (указано в тексте макроса) Автор - Мурад Дата добавления - 17.11.2014 в 17:00
Мурад
Дата: Понедельник, 17.11.2014, 18:23 |
Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
имеются два файла. подскажите, после того как скопировал данные в одном файле, каким образом в макросе перейти в другой файл для вставки туда данных, без указания в последнем случае конкретного имени файла? т.е. [vba]Код
Workbooks.Open ("экземпляр.xlsx") Range("A1:D31").Select Selection.Copy ???Workbooks.Activate???
[/vba]
имеются два файла. подскажите, после того как скопировал данные в одном файле, каким образом в макросе перейти в другой файл для вставки туда данных, без указания в последнем случае конкретного имени файла? т.е. [vba]Код
Workbooks.Open ("экземпляр.xlsx") Range("A1:D31").Select Selection.Copy ???Workbooks.Activate???
[/vba] Мурад
Сообщение отредактировал Мурад - Понедельник, 17.11.2014, 18:24
Ответить
Сообщение имеются два файла. подскажите, после того как скопировал данные в одном файле, каким образом в макросе перейти в другой файл для вставки туда данных, без указания в последнем случае конкретного имени файла? т.е. [vba]Код
Workbooks.Open ("экземпляр.xlsx") Range("A1:D31").Select Selection.Copy ???Workbooks.Activate???
[/vba] Автор - Мурад Дата добавления - 17.11.2014 в 18:23
Мурад
Дата: Понедельник, 17.11.2014, 18:31 |
Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
ладно, буду дальше говорить сам с собой) представляю апогей моих мыслей, дальше мне сложно разобраться самому. после того, как мы скопировали данные в экземпляре, переходим в нужную книгу: [vba]Код
ThisWorkbook.Worksheets(1).Activate For i = 1 To ActiveWorkbook.Sheets.Count Sheets(i).Activate Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("A1").Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ActiveSheet.Paste Range("D48").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "1" Range("D49").Select ActiveCell.FormulaR1C1 = "2" Range("D48:D49").Select Selection.AutoFill Destination:=Range("D48:D59"), Type:=xlFillDefault Range("D48:D59").Select Range("A2").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A4").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A5").Select Range("A7").Select ActiveCell.FormulaR1C1 = "=R[35]C[1]" Range("A8").Select Range("B15").Select ActiveCell.FormulaR1C1 = "=R[33]C" Range("B16").Select Range("B18").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B19").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B20").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B21").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B22").Select ActiveCell.FormulaR1C1 = "=R[28]C" Range("B23").Select Range("B24").Select ActiveCell.FormulaR1C1 = "=R[32]C" Range("B25").Select ActiveCell.FormulaR1C1 = "=R[27]C+R[28]C+R[29]C+R[30]C" Range("B26").Select Range("B27").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B28").Select Range("A1:D31").Select Range("B14:D28").Select Selection.NumberFormat = "#,##0.00" Range("A1:D31").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Rows("32:42").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Range("A1").Select Next i
[/vba]
ладно, буду дальше говорить сам с собой) представляю апогей моих мыслей, дальше мне сложно разобраться самому. после того, как мы скопировали данные в экземпляре, переходим в нужную книгу: [vba]Код
ThisWorkbook.Worksheets(1).Activate For i = 1 To ActiveWorkbook.Sheets.Count Sheets(i).Activate Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("A1").Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ActiveSheet.Paste Range("D48").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "1" Range("D49").Select ActiveCell.FormulaR1C1 = "2" Range("D48:D49").Select Selection.AutoFill Destination:=Range("D48:D59"), Type:=xlFillDefault Range("D48:D59").Select Range("A2").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A4").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A5").Select Range("A7").Select ActiveCell.FormulaR1C1 = "=R[35]C[1]" Range("A8").Select Range("B15").Select ActiveCell.FormulaR1C1 = "=R[33]C" Range("B16").Select Range("B18").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B19").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B20").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B21").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B22").Select ActiveCell.FormulaR1C1 = "=R[28]C" Range("B23").Select Range("B24").Select ActiveCell.FormulaR1C1 = "=R[32]C" Range("B25").Select ActiveCell.FormulaR1C1 = "=R[27]C+R[28]C+R[29]C+R[30]C" Range("B26").Select Range("B27").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B28").Select Range("A1:D31").Select Range("B14:D28").Select Selection.NumberFormat = "#,##0.00" Range("A1:D31").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Rows("32:42").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Range("A1").Select Next i
[/vba] Мурад
Ответить
Сообщение ладно, буду дальше говорить сам с собой) представляю апогей моих мыслей, дальше мне сложно разобраться самому. после того, как мы скопировали данные в экземпляре, переходим в нужную книгу: [vba]Код
ThisWorkbook.Worksheets(1).Activate For i = 1 To ActiveWorkbook.Sheets.Count Sheets(i).Activate Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("A1").Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ActiveSheet.Paste Range("D48").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "1" Range("D49").Select ActiveCell.FormulaR1C1 = "2" Range("D48:D49").Select Selection.AutoFill Destination:=Range("D48:D59"), Type:=xlFillDefault Range("D48:D59").Select Range("A2").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A4").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A5").Select Range("A7").Select ActiveCell.FormulaR1C1 = "=R[35]C[1]" Range("A8").Select Range("B15").Select ActiveCell.FormulaR1C1 = "=R[33]C" Range("B16").Select Range("B18").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B19").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B20").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B21").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B22").Select ActiveCell.FormulaR1C1 = "=R[28]C" Range("B23").Select Range("B24").Select ActiveCell.FormulaR1C1 = "=R[32]C" Range("B25").Select ActiveCell.FormulaR1C1 = "=R[27]C+R[28]C+R[29]C+R[30]C" Range("B26").Select Range("B27").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B28").Select Range("A1:D31").Select Range("B14:D28").Select Selection.NumberFormat = "#,##0.00" Range("A1:D31").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Rows("32:42").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Range("A1").Select Next i
[/vba] Автор - Мурад Дата добавления - 17.11.2014 в 18:31
alex1248
Дата: Понедельник, 17.11.2014, 18:34 |
Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация:
71
±
Замечаний:
0% ±
Excel 2007, 2010
каким образом в макросе перейти в другой файл для вставки туда данных, без указания в последнем случае конкретного имени файла?
Можно, например, заранее присвоить переменной типа Object значение, равное данному файлу (сорри за возможные неточности в терминологии). А по поводу первого вопроса - вам бы следовало показать, что вам нужно, а не загадывать загадку разобраться в записи макрорекордера.
каким образом в макросе перейти в другой файл для вставки туда данных, без указания в последнем случае конкретного имени файла?
Можно, например, заранее присвоить переменной типа Object значение, равное данному файлу (сорри за возможные неточности в терминологии). А по поводу первого вопроса - вам бы следовало показать, что вам нужно, а не загадывать загадку разобраться в записи макрорекордера. alex1248
skype alex12481632 Qiwi +79276708519
Ответить
Сообщение каким образом в макросе перейти в другой файл для вставки туда данных, без указания в последнем случае конкретного имени файла?
Можно, например, заранее присвоить переменной типа Object значение, равное данному файлу (сорри за возможные неточности в терминологии). А по поводу первого вопроса - вам бы следовало показать, что вам нужно, а не загадывать загадку разобраться в записи макрорекордера. Автор - alex1248 Дата добавления - 17.11.2014 в 18:34
Мурад
Дата: Понедельник, 17.11.2014, 18:40 |
Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
Алекс, спасибо за отклик! Не пугайтесь длинному коду. выбросьте все лишнее. мне нужна помощь в куске: [vba]Код
Workbooks.Open ("экземпляр.xlsx") Range("A1:D31").Select Selection.Copy ThisWorkbook.Worksheets(1).Activate For i = 1 To ActiveWorkbook.Sheets.Count ... next i
[/vba]
Алекс, спасибо за отклик! Не пугайтесь длинному коду. выбросьте все лишнее. мне нужна помощь в куске: [vba]Код
Workbooks.Open ("экземпляр.xlsx") Range("A1:D31").Select Selection.Copy ThisWorkbook.Worksheets(1).Activate For i = 1 To ActiveWorkbook.Sheets.Count ... next i
[/vba] Мурад
Ответить
Сообщение Алекс, спасибо за отклик! Не пугайтесь длинному коду. выбросьте все лишнее. мне нужна помощь в куске: [vba]Код
Workbooks.Open ("экземпляр.xlsx") Range("A1:D31").Select Selection.Copy ThisWorkbook.Worksheets(1).Activate For i = 1 To ActiveWorkbook.Sheets.Count ... next i
[/vba] Автор - Мурад Дата добавления - 17.11.2014 в 18:40
Мурад
Дата: Понедельник, 17.11.2014, 18:42 |
Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
у меня в активной книге не выполняются команды, заключенные в операторе for i ... next. Не знаю, где ошибка
у меня в активной книге не выполняются команды, заключенные в операторе for i ... next. Не знаю, где ошибка Мурад
Ответить
Сообщение у меня в активной книге не выполняются команды, заключенные в операторе for i ... next. Не знаю, где ошибка Автор - Мурад Дата добавления - 17.11.2014 в 18:42
RAN
Дата: Понедельник, 17.11.2014, 18:42 |
Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
[vba]Код
Workbooks.Open ("экземпляр.xlsx") Sheets ("Нужный").Select Range("A1:D31").Select
[/vba]
[vba]Код
Workbooks.Open ("экземпляр.xlsx") Sheets ("Нужный").Select Range("A1:D31").Select
[/vba] RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение [vba]Код
Workbooks.Open ("экземпляр.xlsx") Sheets ("Нужный").Select Range("A1:D31").Select
[/vba] Автор - RAN Дата добавления - 17.11.2014 в 18:42
Мурад
Дата: Вторник, 18.11.2014, 10:08 |
Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
Почему у меня не работает процедура? [vba]Код
Sub калько() For i = 1 To ThisWorkbook.Sheets.Count ThisWorkbook.Sheets(i).Activate Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i End Sub
[/vba]
Почему у меня не работает процедура? [vba]Код
Sub калько() For i = 1 To ThisWorkbook.Sheets.Count ThisWorkbook.Sheets(i).Activate Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i End Sub
[/vba] Мурад
Ответить
Сообщение Почему у меня не работает процедура? [vba]Код
Sub калько() For i = 1 To ThisWorkbook.Sheets.Count ThisWorkbook.Sheets(i).Activate Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i End Sub
[/vba] Автор - Мурад Дата добавления - 18.11.2014 в 10:08
Мурад
Дата: Вторник, 18.11.2014, 10:14 |
Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
при запуске ничего не происходит, строки не вставляются
при запуске ничего не происходит, строки не вставляются Мурад
Ответить
Сообщение при запуске ничего не происходит, строки не вставляются Автор - Мурад Дата добавления - 18.11.2014 в 10:14
nilem
Дата: Вторник, 18.11.2014, 10:23 |
Сообщение № 12
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
проверил на всякий случай. Все работает, вставляется.
проверил на всякий случай. Все работает, вставляется. nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение проверил на всякий случай. Все работает, вставляется. Автор - nilem Дата добавления - 18.11.2014 в 10:23
Мурад
Дата: Вторник, 18.11.2014, 10:25 |
Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
у меня заработало только после вставки sheets(1).select [vba]Код
Sub калько() Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i End Sub
[/vba]
у меня заработало только после вставки sheets(1).select [vba]Код
Sub калько() Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i End Sub
[/vba] Мурад
Ответить
Сообщение у меня заработало только после вставки sheets(1).select [vba]Код
Sub калько() Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i End Sub
[/vba] Автор - Мурад Дата добавления - 18.11.2014 в 10:25
Мурад
Дата: Вторник, 18.11.2014, 10:34 |
Сообщение № 14
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
после того, как я скопировал таблицу из одного файла: [vba]Код
Workbooks.Open ("экземпляр.xlsx") Sheets(1).Select Range("A1:D31").Select Selection.Copy
[/vba] не могу вставить эту таблицу в заготовленное для нее место в другом файле [vba]Код
ThisWorkbook.Worksheets(1).Activate Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ActiveSheet.Paste
[/vba] ((( ну где я ошибся?)) уже сутки решаю эту задачу)) делал все по шагам, в буфере информация хранится, но вставка не происходит
после того, как я скопировал таблицу из одного файла: [vba]Код
Workbooks.Open ("экземпляр.xlsx") Sheets(1).Select Range("A1:D31").Select Selection.Copy
[/vba] не могу вставить эту таблицу в заготовленное для нее место в другом файле [vba]Код
ThisWorkbook.Worksheets(1).Activate Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ActiveSheet.Paste
[/vba] ((( ну где я ошибся?)) уже сутки решаю эту задачу)) делал все по шагам, в буфере информация хранится, но вставка не происходит Мурад
Ответить
Сообщение после того, как я скопировал таблицу из одного файла: [vba]Код
Workbooks.Open ("экземпляр.xlsx") Sheets(1).Select Range("A1:D31").Select Selection.Copy
[/vba] не могу вставить эту таблицу в заготовленное для нее место в другом файле [vba]Код
ThisWorkbook.Worksheets(1).Activate Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ActiveSheet.Paste
[/vba] ((( ну где я ошибся?)) уже сутки решаю эту задачу)) делал все по шагам, в буфере информация хранится, но вставка не происходит Автор - Мурад Дата добавления - 18.11.2014 в 10:34
nilem
Дата: Вторник, 18.11.2014, 10:49 |
Сообщение № 15
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
просто для примера Предположим есть "Книга2.xlsx" с диапазоном, который нужно скопировать Range("A1:D31") на первом листе, и есть другая книга (в которую нужно копировать) с таким макросом: [vba]Код
Sub tt() Dim i& Workbooks("Книга2.xlsx").Sheets(1).Range("A1:D31").Copy With ThisWorkbook For i = 1 To .Sheets.Count With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteColumnWidths End With Next End With Application.CutCopyMode = False End Sub
[/vba] Обе книги у нас открыты. Попробуйте
просто для примера Предположим есть "Книга2.xlsx" с диапазоном, который нужно скопировать Range("A1:D31") на первом листе, и есть другая книга (в которую нужно копировать) с таким макросом: [vba]Код
Sub tt() Dim i& Workbooks("Книга2.xlsx").Sheets(1).Range("A1:D31").Copy With ThisWorkbook For i = 1 To .Sheets.Count With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteColumnWidths End With Next End With Application.CutCopyMode = False End Sub
[/vba] Обе книги у нас открыты. Попробуйте nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение просто для примера Предположим есть "Книга2.xlsx" с диапазоном, который нужно скопировать Range("A1:D31") на первом листе, и есть другая книга (в которую нужно копировать) с таким макросом: [vba]Код
Sub tt() Dim i& Workbooks("Книга2.xlsx").Sheets(1).Range("A1:D31").Copy With ThisWorkbook For i = 1 To .Sheets.Count With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteColumnWidths End With Next End With Application.CutCopyMode = False End Sub
[/vba] Обе книги у нас открыты. Попробуйте Автор - nilem Дата добавления - 18.11.2014 в 10:49
Мурад
Дата: Вторник, 18.11.2014, 11:26 |
Сообщение № 16
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
а в описанном выше примере, вместо вставки значений как вставить данные буфера без потери форматирования? так: [vba]Код
With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteColumnWidths .Paste End With
[/vba]
а в описанном выше примере, вместо вставки значений как вставить данные буфера без потери форматирования? так: [vba]Код
With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteColumnWidths .Paste End With
[/vba] Мурад
Ответить
Сообщение а в описанном выше примере, вместо вставки значений как вставить данные буфера без потери форматирования? так: [vba]Код
With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteColumnWidths .Paste End With
[/vba] Автор - Мурад Дата добавления - 18.11.2014 в 11:26
nilem
Дата: Вторник, 18.11.2014, 11:36 |
Сообщение № 17
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
[vba]Код
With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteAll .PasteSpecial Paste:=xlPasteColumnWidths End With
[/vba]
[vba]Код
With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteAll .PasteSpecial Paste:=xlPasteColumnWidths End With
[/vba] nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение [vba]Код
With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteAll .PasteSpecial Paste:=xlPasteColumnWidths End With
[/vba] Автор - nilem Дата добавления - 18.11.2014 в 11:36
Мурад
Дата: Вторник, 18.11.2014, 12:12 |
Сообщение № 18
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
вот все куски, о которых мы говорим: [vba]Код
Sub калько() Dim i& Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i Workbooks.Open ("экземпляр.xlsx") Sheets(1).Select Range("A1:D31").Select Selection.Copy With ThisWorkbook For i = 1 To .Sheets.Count With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False .PasteSpecial Paste:=xlPasteAll End With Next End With Application.CutCopyMode = False End Sub
[/vba] копирование срывается при переходе в другую книгу, т.е. после запуска макроса, в файле "экземпляр" копированный диапазон A1:D31 "не светится". как следствие в нужном файле не происходит вставка
вот все куски, о которых мы говорим: [vba]Код
Sub калько() Dim i& Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i Workbooks.Open ("экземпляр.xlsx") Sheets(1).Select Range("A1:D31").Select Selection.Copy With ThisWorkbook For i = 1 To .Sheets.Count With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False .PasteSpecial Paste:=xlPasteAll End With Next End With Application.CutCopyMode = False End Sub
[/vba] копирование срывается при переходе в другую книгу, т.е. после запуска макроса, в файле "экземпляр" копированный диапазон A1:D31 "не светится". как следствие в нужном файле не происходит вставка Мурад
Ответить
Сообщение вот все куски, о которых мы говорим: [vba]Код
Sub калько() Dim i& Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i Workbooks.Open ("экземпляр.xlsx") Sheets(1).Select Range("A1:D31").Select Selection.Copy With ThisWorkbook For i = 1 To .Sheets.Count With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False .PasteSpecial Paste:=xlPasteAll End With Next End With Application.CutCopyMode = False End Sub
[/vba] копирование срывается при переходе в другую книгу, т.е. после запуска макроса, в файле "экземпляр" копированный диапазон A1:D31 "не светится". как следствие в нужном файле не происходит вставка Автор - Мурад Дата добавления - 18.11.2014 в 12:12
nilem
Дата: Вторник, 18.11.2014, 12:38 |
Сообщение № 19
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
"не светится" - в смысле муравьи не бегают? У меня вот так работает (предполагается, что обе книги лежат в одной папке) [vba]Код
Sub ertert() Dim i& With GetObject(ThisWorkbook.Path & "\экземпляр.xlsx") .Sheets(1).Range("A1:D31").Copy With ThisWorkbook For i = 1 To .Sheets.Count With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteAll .PasteSpecial Paste:=xlPasteColumnWidths End With Next End With Application.CutCopyMode = False .Close 0 End With End Sub
[/vba]
"не светится" - в смысле муравьи не бегают? У меня вот так работает (предполагается, что обе книги лежат в одной папке) [vba]Код
Sub ertert() Dim i& With GetObject(ThisWorkbook.Path & "\экземпляр.xlsx") .Sheets(1).Range("A1:D31").Copy With ThisWorkbook For i = 1 To .Sheets.Count With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteAll .PasteSpecial Paste:=xlPasteColumnWidths End With Next End With Application.CutCopyMode = False .Close 0 End With End Sub
[/vba] nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение "не светится" - в смысле муравьи не бегают? У меня вот так работает (предполагается, что обе книги лежат в одной папке) [vba]Код
Sub ertert() Dim i& With GetObject(ThisWorkbook.Path & "\экземпляр.xlsx") .Sheets(1).Range("A1:D31").Copy With ThisWorkbook For i = 1 To .Sheets.Count With .Sheets(i).Range("A1") .PasteSpecial Paste:=xlPasteAll .PasteSpecial Paste:=xlPasteColumnWidths End With Next End With Application.CutCopyMode = False .Close 0 End With End Sub
[/vba] Автор - nilem Дата добавления - 18.11.2014 в 12:38
Мурад
Дата: Вторник, 18.11.2014, 16:14 |
Сообщение № 20
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
все равно не получилось автоматизировать сразу все. в итоге сделал 2 макроса. первый макрос раздвигает строки на каждом листе: [vba]Код
Sub Строки() Dim i& Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i Sheets.Select End Sub
[/vba] затем я вручную копирую из другого файла таблицу, перехожу в нужный мне файл, вставляю ширину столбцов, затем саму таблицу. после этого запускаю второй макрос, который успешно выполняет расчеты: [vba]Код
Sub redakt() Sheets.Select Sheets(1).Activate Range("D48").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "1" Range("D49").Select ActiveCell.FormulaR1C1 = "2" Range("D48:D49").Select Selection.AutoFill Destination:=Range("D48:D59"), Type:=xlFillDefault Range("D48:D59").Select Range("A2").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A4").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A5").Select Range("A7").Select ActiveCell.FormulaR1C1 = "=R[35]C[1]" Range("A8").Select Range("B15").Select ActiveCell.FormulaR1C1 = "=R[33]C" Range("B16").Select Range("B18").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B19").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B20").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B21").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B22").Select ActiveCell.FormulaR1C1 = "=R[28]C" Range("B23").Select Range("B24").Select ActiveCell.FormulaR1C1 = "=R[32]C" Range("B25").Select ActiveCell.FormulaR1C1 = "=R[27]C+R[28]C+R[29]C+R[30]C" Range("B26").Select Range("B27").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B28").Select Range("A1:D31").Select Range("B14:D28").Select Selection.NumberFormat = "#,##0.00" Range("A1:D31").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Rows("32:42").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Range("A1").Select End Sub
[/vba] Выводы: я так и не решил проблему автоматизации действий между двумя макросами)))
все равно не получилось автоматизировать сразу все. в итоге сделал 2 макроса. первый макрос раздвигает строки на каждом листе: [vba]Код
Sub Строки() Dim i& Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i Sheets.Select End Sub
[/vba] затем я вручную копирую из другого файла таблицу, перехожу в нужный мне файл, вставляю ширину столбцов, затем саму таблицу. после этого запускаю второй макрос, который успешно выполняет расчеты: [vba]Код
Sub redakt() Sheets.Select Sheets(1).Activate Range("D48").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "1" Range("D49").Select ActiveCell.FormulaR1C1 = "2" Range("D48:D49").Select Selection.AutoFill Destination:=Range("D48:D59"), Type:=xlFillDefault Range("D48:D59").Select Range("A2").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A4").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A5").Select Range("A7").Select ActiveCell.FormulaR1C1 = "=R[35]C[1]" Range("A8").Select Range("B15").Select ActiveCell.FormulaR1C1 = "=R[33]C" Range("B16").Select Range("B18").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B19").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B20").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B21").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B22").Select ActiveCell.FormulaR1C1 = "=R[28]C" Range("B23").Select Range("B24").Select ActiveCell.FormulaR1C1 = "=R[32]C" Range("B25").Select ActiveCell.FormulaR1C1 = "=R[27]C+R[28]C+R[29]C+R[30]C" Range("B26").Select Range("B27").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B28").Select Range("A1:D31").Select Range("B14:D28").Select Selection.NumberFormat = "#,##0.00" Range("A1:D31").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Rows("32:42").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Range("A1").Select End Sub
[/vba] Выводы: я так и не решил проблему автоматизации действий между двумя макросами))) Мурад
Ответить
Сообщение все равно не получилось автоматизировать сразу все. в итоге сделал 2 макроса. первый макрос раздвигает строки на каждом листе: [vba]Код
Sub Строки() Dim i& Sheets(1).Select For i = 1 To Sheets.Count Sheets(i).Select Rows("1:30").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next i Sheets.Select End Sub
[/vba] затем я вручную копирую из другого файла таблицу, перехожу в нужный мне файл, вставляю ширину столбцов, затем саму таблицу. после этого запускаю второй макрос, который успешно выполняет расчеты: [vba]Код
Sub redakt() Sheets.Select Sheets(1).Activate Range("D48").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "1" Range("D49").Select ActiveCell.FormulaR1C1 = "2" Range("D48:D49").Select Selection.AutoFill Destination:=Range("D48:D59"), Type:=xlFillDefault Range("D48:D59").Select Range("A2").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A4").Select ActiveCell.FormulaR1C1 = "=R[39]C[1]" Range("A5").Select Range("A7").Select ActiveCell.FormulaR1C1 = "=R[35]C[1]" Range("A8").Select Range("B15").Select ActiveCell.FormulaR1C1 = "=R[33]C" Range("B16").Select Range("B18").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B19").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B20").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B21").Select ActiveCell.FormulaR1C1 = "=R[38]C" Range("B22").Select ActiveCell.FormulaR1C1 = "=R[28]C" Range("B23").Select Range("B24").Select ActiveCell.FormulaR1C1 = "=R[32]C" Range("B25").Select ActiveCell.FormulaR1C1 = "=R[27]C+R[28]C+R[29]C+R[30]C" Range("B26").Select Range("B27").Select ActiveCell.FormulaR1C1 = "=R[31]C" Range("B28").Select Range("A1:D31").Select Range("B14:D28").Select Selection.NumberFormat = "#,##0.00" Range("A1:D31").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Rows("32:42").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Selection.Delete Shift:=xlUp Range("A1").Select End Sub
[/vba] Выводы: я так и не решил проблему автоматизации действий между двумя макросами))) Автор - Мурад Дата добавления - 18.11.2014 в 16:14