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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2010, 07:11   #11
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
А почему не используются, если надо в столб2 кн2 добавить значение столб2 кн1?
Давайте рассмотрим подробнее. Имеем код:
Код:
For j = 2 To 5: .Cells(i, a(j)) = Cells(cell.Row, j): Next
и имеем массив a = Array(0, 0, 2, 3, 8, 15).
Получаем соответствие:
j = 2 : a(j) = 2
j = 3 : a(j) = 3
j = 4 : a(j) = 8
j = 5 : a(j) = 15
Что и требовалось. Такой подход позволит осуществить требуемый перенос данных в произвольные столбцы с использованием простого цикла при любом количестве данных в строке. Тем более, что Вы говорите
Цитата:
...и т.д. Много.
Цитата:
А почему кнопки мешают? Они фиксируют строки что-ли?
Не знаю. Давайте пример. При скрытии/отображении строк, кнопки, расположенные на рабочем листе (как "форма", так и "элемент управления"), не должны мешать. Тем более, что все это происходит на неактивном листе и к тому же при запрещенном обновлении экрана.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 25.03.2010, 08:51   #12
kipish_lp
Форумчанин
 
Регистрация: 25.11.2009
Сообщений: 113
По умолчанию

После долгих перестановок столбцов (иначе не пойму) получилось вот что:
Код:
    Dim j As Integer, a(): a = Array(0, 0, 2, 3, , , , , , , , , , 4, 5, 6, 7, 8, 9, 10)
Код:
                If y Is Nothing Then
                    i = .Cells(Rows.Count, 5).End(xlUp).Row + 1
                    For j = 2 To 19: .Cells(i, a(j)) = Cells(cell.Row, j): Next
                End If
Как я поняла. Но, почему-то, строка заголовка кн2 меняет значения ячеек на данные столб12 кн1.
kipish_lp вне форума Ответить с цитированием
Старый 25.03.2010, 09:14   #13
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Давайте так (может будет более понятно):
Создадим 2 массива.
1-й будет содержать номера столбцов книги 1, из которых требуется копировать значения.
2-й будет содержать номера столбцов книги 2, в которые требуется копировать значения.
Обязательное условие: количество элементов обоих массивов одинаковое и строгое соответствие порядка следования номеров столбцов (элементов массива).
Так, в приведенном ниже примере, данные найденной строки в книге 1 будут присвоены следующей свободной строке в книге 2 в таком соответствии:
из столбца 2 в столбец 9
из столбца 3 в столбец 5
из столбца 5 в столбец 3
из столбца 7 в столбец 8
из столбца 10 в столбец 18
из столбца 12 в столбец 12
Замените элементы обоих массивов на требуемые, соблюдая оговоренные правила.
Код:
Dim a(), b()
a = Array(2, 3, 5, 7, 10, 12) 'это номера столбцов книги 1 ИЗ КОТОРЫХ копировать значения
b = Array(9, 5, 3, 8, 18, 12) 'это номера столбцов книги 2 В КОТОРЫЕ копировать значения
If y Is Nothing Then
    i = .Cells(Rows.Count, 5).End(xlUp).Row + 1
    For j = LBound(a) To UBound(a): .Cells(i, b(j)) = Cells(cell.Row, a(j)): Next
End If
Что не понятно? Что не получается? Будут вопросы - прикрепляйте пример.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 25.03.2010, 10:27   #14
kipish_lp
Форумчанин
 
Регистрация: 25.11.2009
Сообщений: 113
По умолчанию

Да! Получилось!!! Если вам будет легче - вы объяснили блондинке так, что она поняла.
Спасибо огромное!
kipish_lp вне форума Ответить с цитированием
Старый 15.07.2015, 00:04   #15
Mpgeshka
Пользователь
 
Регистрация: 14.07.2015
Сообщений: 22
По умолчанию Помогите разобраться

Добрый вечер, умнейшим из умнейших. Раньше когда то работала с Excel часто и долго, но на данный момент очень давно без практики. А задачка у меня сейчас сложилась следующая. есть две книги. Каждая включает в себя по 12 листов(по месяцам). Одна из этих книг уже является сводной ведомостью. но ее макрос мне не прочитать, стоит пароль, а человек делавший ее уже давно у нас не работает. Так вот Мне необходимо так скажем обеспечить переход данных из одной книги (которая сводная ведомость) в другую. Причем ячейки которые должны быть скопированы находятся в разбросанном состоянии например из c5 в b15 и тд
Mpgeshka вне форума Ответить с цитированием
Старый 15.07.2015, 07:27   #16
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Создайте новую тему, прикрепите файл с данными и подробно опишите задачу.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование и вставка формул из одной книги в другую KNatalia Microsoft Office Excel 5 10.06.2010 13:15
Копирование данных из одной рабочей книги в другую макросом. Andrey3055 Microsoft Office Excel 2 30.10.2009 22:00
Сложное копирование из одной книги в другую kzld Microsoft Office Excel 12 15.07.2009 11:56
Помогите с интеграцией данных из одной книги в другую. Lexeron Microsoft Office Excel 5 05.03.2009 13:01
Копирование данных из одной таблицы в другую! фЁдОр БД в Delphi 18 06.01.2008 19:27