Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

Мне надо при нажатие "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,487
По умолчанию

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

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

Я сейчас могу копировать отдельные столбцы, которые нужны мне. Но, 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
Сообщений: 163
По умолчанию

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

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

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

Спасибо, 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
Сообщений: 163
По умолчанию

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
Сообщений: 6
По умолчанию

Спасибо Вам, 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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



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