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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2013, 11:43   #1
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию Состыковка двух массивов

Здравствуйте коллеги, созрел вопрос, не могли бы вы мне подсказать вот такую весчь, если два массива на разных листах, я разбил их на два потому, что если этот массив хранить на одном листе то он выйдет за пределы за 65500 точно выйдет, как организовать такой макрос, чтобы дозаписать со второго листа на первый, на первом через цикл встать на первую пустую ячейку и скопировать инфу с листа два на лист один, коллеги помогите мне это сделать программно, можно через макрос))
manula вне форума Ответить с цитированием
Старый 30.07.2013, 13:28   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Посмотрите вот это Объединение двумерных массивов
Проверено, работает отлично!
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 30.07.2013, 15:48   #3
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Спасибо конечно за подсказку ну это немного не то что мне нужно, мне нужен пример тупо в лоб, вот как расположена у меня информация на листе, показано на картинке, просто тупо машинально вставить с одного листа на другой, дозапись в общем, вот как это грамотно сделать, подскажи пожалуйста.
Изображения
Тип файла: jpg Безымянный.jpg (62.6 Кб, 149 просмотров)
manula вне форума Ответить с цитированием
Старый 30.07.2013, 17:47   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

"за пределы за 65500 точно выйдет" - значит никак.
Если же нужно дополнить первый лист "под завязку", а остальное оставить на втором - то я бы просто разбивал на два листа так, чтоб потом не гемороится с этим вопросом.
Что сделать сейчас - посмотреть сколько строк не заполнено, их выделить и перенести в конец.
Поверьте, вручную уже давно всё было бы готово

Хотя вот, проверьте:
Код:
Sub tt()
    x = Sheets(1).[a1].CurrentRegion.Rows.Count
    y = Sheets(1).Rows.Count - x
    With Sheets(2)
        Range(.Cells(1, 1), .Cells(y, 3)).Copy Sheets(1).Cells(x + 1, 1)
        Range(.Cells(1, 1), .Cells(y, 3)).EntireRow.Delete
    End With
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 30.07.2013 в 17:56.
Hugo121 вне форума Ответить с цитированием
Старый 31.07.2013, 08:53   #5
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
"за пределы за 65500 точно выйдет" - значит никак.
Если же нужно дополнить первый лист "под завязку", а остальное оставить на втором - то я бы просто разбивал на два листа так, чтоб потом не гемороится с этим вопросом.
Что сделать сейчас - посмотреть сколько строк не заполнено, их выделить и перенести в конец.
Поверьте, вручную уже давно всё было бы готово

Хотя вот, проверьте:
Код:
Sub tt()
    x = Sheets(1).[a1].CurrentRegion.Rows.Count
    y = Sheets(1).Rows.Count - x
    With Sheets(2)
        Range(.Cells(1, 1), .Cells(y, 3)).Copy Sheets(1).Cells(x + 1, 1)
        Range(.Cells(1, 1), .Cells(y, 3)).EntireRow.Delete
    End With
End Sub
Благодарю Hugo, это то как раз что мне и надо, только на строке:
PHP код:
Range(.Cells(31), .Cells(y3)).Copy Sheets(2).Cells(11
Выдает ошибку такого содержания: Application-defined or object-degined error.
В чем ошибка коллега, на третьем листе инфа начинается с 3 строки, по сути мы на втором листе находим последнюю запись, потом идем на третий лист встаем на третью строку, копируем с третьего лист на лист второй, такой ведь должен быть алгоритм))
manula вне форума Ответить с цитированием
Старый 31.07.2013, 09:36   #6
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Сообщение от manula Посмотреть сообщение
Благодарю Hugo, это то как раз что мне и надо, только на строке:
PHP код:
Range(.Cells(31), .Cells(y3)).Copy Sheets(2).Cells(11
Выдает ошибку такого содержания: Application-defined or object-degined error.
В чем ошибка коллега, на третьем листе инфа начинается с 3 строки, по сути мы на втором листе находим последнюю запись, потом идем на третий лист встаем на третью строку, копируем с третьего лист на лист второй, такой ведь должен быть алгоритм))
Проверьте значения x и y - скорее всего они выходят за пределы максимума...
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 31.07.2013, 09:55   #7
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Благодарю за помощь DiemonStar, щас проверю, а можно вот еще какой вопрос задать, мне еще нужно проанализировать записи и если встретился одинаковый код, то выделить эту строку любым цветом для наглядности, для наглядности я вложил картинку где видно что у некоторых записей одинаковое значение в первом столбце, как можно реализовать такой алгоритм коллеги
Изображения
Тип файла: png Рисунок_1.png (20.4 Кб, 32 просмотров)
manula вне форума Ответить с цитированием
Старый 31.07.2013, 10:41   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

такой алгоритм, коллега, можно организовать условным форматирование столбца:
Код:
=счетесли(C;RC)>1
и задать заливку кроваво-красным цветом
а потом... как только увидите в столбце ячейку с кроваво-красной заливкой - значит где есть еще, как минимум, одна такая!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 31.07.2013 в 11:07.
IgorGO вне форума Ответить с цитированием
Старый 31.07.2013, 10:51   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Насчёт строки с ошибкой - Вы знаете, у меня в коде нет такой строки
Если после Ваших коррекций появляется ошибка - показывайте весь код. Ну и весь файл.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 31.07.2013, 11:09   #10
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Насчёт строки с ошибкой - Вы знаете, у меня в коде нет такой строки
Если после Ваших коррекций появляется ошибка - показывайте весь код. Ну и весь файл.
Я вложил книгу коллега, там на втором листе кнопка с макросом, в общем надо с третьего листа перекинуть на второй, вот.
Вложения
Тип файла: rar Книга1.rar (52.1 Кб, 8 просмотров)
manula вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приравнивание двух массивов Sauber Общие вопросы C/C++ 2 07.11.2012 10:13
Сортировка двух массивов saggy Общие вопросы Delphi 9 13.06.2012 22:07
Уравнение двух массивов VmanMaslov Общие вопросы C/C++ 5 14.10.2011 07:56
Слияние двух массивов Anubys Помощь студентам 0 26.03.2011 16:12
Сортировка двух массивов Lodyr Общие вопросы C/C++ 8 18.11.2010 19:48