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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2012, 13:41   #11
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

откройте новую книгу
выполните этот
Код:
Sub Union2ListsAt3()
  Dim sh As Long, r As Long, c As Long
  Randomize
  If Sheets.Count < 2 Then Sheets(1).Copy After:=Sheets(Sheets.Count)
  For sh = 1 To 2
    Sheets(sh).Cells.ClearContents
    For r = 1 To Int(20 + Rnd() * 10)
      For c = 1 To Int(10 + Rnd() * 5)
        If Rnd() < 0.24 * sh Then Sheets(sh).Cells(r, c) = sh
      Next
    Next
  Next
  Sheets(1).Copy After:=Sheets(Sheets.Count)
  Sheets(2).UsedRange.Copy
  Sheets(Sheets.Count).Cells(1).PasteSpecial SkipBlanks:=True
  Application.CutCopyMode = False
End Sub
скурпулёзно изучайте содержимое 1, 2 и последнего листов.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.10.2012, 22:49   #12
TemaZosin
 
Регистрация: 03.10.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
откройте новую книгу
выполните этот
Код:
Sub Union2ListsAt3()
  Dim sh As Long, r As Long, c As Long
  Randomize
  If Sheets.Count < 2 Then Sheets(1).Copy After:=Sheets(Sheets.Count)
  For sh = 1 To 2
    Sheets(sh).Cells.ClearContents
    For r = 1 To Int(20 + Rnd() * 10)
      For c = 1 To Int(10 + Rnd() * 5)
        If Rnd() < 0.24 * sh Then Sheets(sh).Cells(r, c) = sh
      Next
    Next
  Next
  Sheets(1).Copy After:=Sheets(Sheets.Count)
  Sheets(2).UsedRange.Copy
  Sheets(Sheets.Count).Cells(1).PasteSpecial SkipBlanks:=True
  Application.CutCopyMode = False
End Sub
скурпулёзно изучайте содержимое 1, 2 и последнего листов.
Спасибо. Круто! Правда третий лист пустой. Но "сумму" 1 и 2 на 4 я увидел.
Правда вставляя в 1 и 2 свои таблицы у меня все равно скрипт заменяет на рэндом. Я думал он "сложит" и мои значения.

Последний раз редактировалось TemaZosin; 07.10.2012 в 22:55.
TemaZosin вне форума Ответить с цитированием
Старый 07.10.2012, 23:14   #13
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

данные "складываются" на последний лист, а не на третий...

вот это копирует 1-й лист на последний, а потом накладывает поверх данных с первого листа данные второго.
Код:
  Sheets(1).Copy After:=Sheets(Sheets.Count)
  Sheets(2).UsedRange.Copy
  Sheets(Sheets.Count).Cells(1).PasteSpecial SkipBlanks:=True
а чтобы выполнить Вашу задачу, описанную в первом сообщении, достаточно внимательное прочитать рекомендации Казанского
или выполнить макрос из двух строк:
Код:
  Sheets(2).UsedRange.Copy
  Sheets(1).Cells(1).PasteSpecial SkipBlanks:=True
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли сделать эфект замены как у iPhone gabiboi Общие вопросы Delphi 0 12.05.2012 20:24
Как перенести данные из блокнота в эксель Natalim Microsoft Office Excel 4 01.06.2011 09:44
Вставка данных без замены Indyvidual Microsoft Office Excel 2 01.12.2009 11:33
макрос который будет копировать столбец А из закрытой книги Данные, и вставлять в книгу Сток в столбец B Utirka66 Microsoft Office Excel 8 06.07.2009 09:53
RichEdit. как можно вставлять картинку туда? как можно Скрол програмно вниз двигать? Svop Компоненты Delphi 7 28.11.2006 21:07