Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 17.10.2020, 02:22   #1
Arimle
Новичок
Джуниор
 
Регистрация: 16.10.2020
Сообщений: 5
По умолчанию Копировать диапазон и отдельные столбцы

Здравствуйте,

Мне надо при нажатие "Button 1" в книге K3.XLSM некоторые данные копировался в другую книгу. Я старался кое-что делать, но некоторые вещи не получается. А именно,
1) Могу копировать диапазон, но не получается отдельные столбцы копировать. (Надо желтые столбцы копировать в другой лист)
2) В K3.XLSM количество записей может быть разные. Динамические диапазоны как можно копировать?
3) При копирование не получается "Insert". T.e., копируемые записи больше 5-ти тогда в книге "ЕH" "Total" не видно будет
4) Как можно в книге "ЕH" программно добавить формулу для всех копируемый записей ?

Помогите пожалуйста, как можно делать такое?
Вложения
Тип файла: zip 1.zip (59.7 Кб, 1 просмотров)
Arimle вне форума Ответить с цитированием
Старый 17.10.2020, 04:50   #2
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,338
По умолчанию

откладывайте деньги. решение не за горами
41001804815208 - Яндекс-деньги благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 17.10.2020, 07:47   #3
Arimle
Новичок
Джуниор
 
Регистрация: 16.10.2020
Сообщений: 5
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
откладывайте деньги. решение не за горами
Спасибо, IgorGO за ответь.
Но, дело не в денгах. Я сам хочу понять и делать.
Arimle вне форума Ответить с цитированием
Старый 17.10.2020, 20:30   #4
Arimle
Новичок
Джуниор
 
Регистрация: 16.10.2020
Сообщений: 5
По умолчанию

Я сейчас могу копировать отдельные столбцы, которые нужны мне. Но, insert не получается. Мне надо делать так что после insert данные в столбцы C, D, E и F в книге "EH" автоматически добавлялся и другие столбцы (G, H, I, …. U), где есть формулы. Можно
ли делать такое?
Вложения
Тип файла: rar 1.rar (61.3 Кб, 2 просмотров)

Последний раз редактировалось Arimle; 17.10.2020 в 20:49.
Arimle вне форума Ответить с цитированием
Старый 18.10.2020, 15:24   #5
Elixi
Пользователь
 
Регистрация: 10.05.2019
Сообщений: 98
По умолчанию

Arimle,
честно скажу, что мне не понятно, что вам надо. Разбираться в вашем проекте что там и как сделано и где и что не получается, уж извините, нет время. Если что-то сказать к этому:

Цитата:
Сообщение от Arimle Посмотреть сообщение
Я сейчас могу копировать отдельные столбцы, которые нужны мне. Но, insert не получается
то пустые столбцы можно вставить например так:

Код:
    Columns("F:I").Insert Shift:=xlToRight
столбцы вставлены, теперь можете в них копировать ваши данные
Elixi вне форума Ответить с цитированием
Старый 18.10.2020, 16:22   #6
Arimle
Новичок
Джуниор
 
Регистрация: 16.10.2020
Сообщений: 5
По умолчанию

Спасибо, Elixi за ответ.
Еще раз попробую обяснить что у меня не получается.

Мне надо из K3.XLSM копировать некоторые столбцы (B, D, G, H) в EH.XLSX (в C, D, E, F). Это у меня получается.
В EH.XLSX есть данные и формулы. Количество копируемые записи может быть разные. При копирование столбцы в EH.XLSX надо добавить строки (где есть формулы), столко раз сколько добавился из K3.XLSM. Вот это у меня не получается.

Код который Вы предлагаете добавляет новые столбцы. Но, у меня есть столбцы, надо добавлять туда данные из K3.XLSM. Здесь проблема нету.
Проблема в том что, надо добавить строки где есть формулы, столко раз сколько добавился из K3.XLSM.

Последний раз редактировалось Arimle; 18.10.2020 в 16:42.
Arimle вне форума Ответить с цитированием
Старый 18.10.2020, 22:06   #7
Elixi
Пользователь
 
Регистрация: 10.05.2019
Сообщений: 98
По умолчанию

Arimle,

Код:
Sub Makro1()
'   Если копировать прямо из листа в лист, можно таким образом.
'   Но сомневаюсь, что вам нужно именно это.

Dim RwFI As Long, RwK As Long, RwLI As Long
Dim Исходная As Excel.Worksheet, Конечная As Excel.Worksheet

'   1. У меня книги уже открыты. 2. Почему не работать прямо с листами?
Set Исходная = Workbooks("k3.xlsm").Worksheets("Rabotniki")
Set Конечная = Workbooks("EH.xlsx").Worksheets("EH")

RwFI = 3:
RwLI = Исходная.Cells(Исходная.Rows.Count, "B").End(xlUp).Row
RwK = Конечная.Cells(Конечная.Rows.Count, "B").End(xlUp).Row

For Rw = RwFI To RwLI
    With Конечная
        .Rows(RwK & ":" & RwK).Insert Shift:=xlDown
        .Cells(RwK, "C") = Исходная.Cells(Rw, "B")
        .Cells(RwK, "D") = Исходная.Cells(Rw, "H")
        .Cells(RwK, "E") = Исходная.Cells(Rw, "D")
        '   у вас там в исходнике оклад с точками, надо очищать
        .Cells(RwK, "F") = Replace(Replace(Исходная.Cells(Rw, "G"), _
                ".", ""), ",", ".")
        .Cells(RwK, "F").NumberFormat = "0.00"
        .Cells(RwK, "G") = 144
        .Cells(RwK, "H") = 150  '   что и откуда вставлять, знаете вы
        .Cells(RwK, "I").Formula = "=F" & RwK & "/G" & RwK & "*H" & RwK
        .Cells(RwK, "L").Formula = "=SUM(I" & RwK & ":K" & RwK & ")"
        .Cells(RwK, "N").Formula = "=IF(L" & RwK & "<=200,L" & RwK & _
                "*3%,IF(L" & RwK & ">200,6+(L" & RwK & "-200)*10%))"
        '   остальные формулы надо доработать...
        RwK = RwK + 1
    End With
Next Rw

End Sub
Elixi вне форума Ответить с цитированием
Старый 19.10.2020, 12:53   #8
Arimle
Новичок
Джуниор
 
Регистрация: 16.10.2020
Сообщений: 5
По умолчанию

Спасибо Вам, Elixi.
Вы очень помогли мне.

Только, у меня в этот момент EH.xlsx не открыта. По этому я открыл этот файл. Незнаю на столько правильно?
Код:
Dim Исходная As Excel.Worksheet, Конечная As Excel.Worksheet, КонечнаяWB As Excel.Workbook
'   1. У меня книги уже открыты. 2. Почему не работать прямо с листами?
Set КонечнаяWB = Workbooks.Open("D:\Vergi\kadr3\EH.xlsx")
Set Исходная = Workbooks("k3.xlsm").Worksheets("Rabotniki")
Set Конечная = Workbooks("EH.xlsx").Worksheets("EH")
Остальные формулы я постораюс сам доработать.
Arimle вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана целочисленная матрица размера MXN. Найти ее столбцы, все элементы которых различны.Эти столбцы должны закрашиваться. Kate21143 Общие вопросы Delphi 2 11.06.2014 06:54
Копировать диапазон в другие ячейки umka777_89 Microsoft Office Excel 9 10.06.2013 00:57
Копировать текст из webbrowser в memo (включить ctrl+c ctrl+v) копировать - вставить Alar Работа с сетью в Delphi 13 12.07.2010 17:16
как копировать столбцы BEKO83 Помощь студентам 1 09.02.2009 20:17
Как написать в коде чтобы диапазон А копировался как значение в диапазон В. Dorvir Microsoft Office Excel 12 23.05.2008 21:11


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840