|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.03.2012, 07:37 | #1 |
Регистрация: 23.02.2012
Сообщений: 4
|
Перенос данных из форма в другую книгу
Прошу помощи в данном вопросе.
Имеется диапазон ячеек А4:F6 (форма, куда забиваются данные). Необходим макрос, который при срабатывании переносит данные в лист 1 книгу "База.xlsm", где идет дальнейшая обработка ( в ячейки А4:F6) Следующее срабатывание долнжо переносить данные в ячейки A7:F9 и т.д. И второй вопрос: покажите, как заставить макросы срабатывать при определенном значении в ячейке (например А2 при значениях 0,1,2 и т.д.), при проверке всего диапазона столбца А (все заполненые ячейки, если пустых между ними нет). |
06.03.2012, 18:10 | #2 |
Регистрация: 23.02.2012
Сообщений: 4
|
Нашел то, что вроде бы подходит, но прошу расшифровать код.
1. Dim R As Range On Error Resume Next Set WS1 = ThisWorkbook.Worksheets("в дороге") Set WS2 = ThisWorkbook.Worksheets("доставлено ") Set R = WS1.Range(WS1.Cells(1, 17), WS1.Cells(65536, 17)) Ind = Application.Match("прибыл", R, 0) ReDim Cnt(1) As Long Cnt(0) = Ind K = Ind + 1 I = 2 Set R = WS1.Range(WS1.Cells(K, 17), WS1.Cells(65536, 17)) Do Until IsError(Ind) Ind = Application.Match("прибыл", R, 0) If Not IsError(Ind) Then ReDim Preserve Cnt(I) K = K + Ind - 1 Cnt(I - 1) = K K = K + 1 Set R = WS1.Range(WS1.Cells(K, 17), WS1.Cells(65536, 17)) I = I + 1 End If Loop K = I - 1 For I = 1 To K WS2.Rows(11).EntireRow.Insert Next I K = 0 For I = 1 To UBound(Cnt()) WS1.Rows(Cnt(I - 1) - K).EntireRow.Cut WS2.Rows(I + 10).EntireRow WS1.Rows(Cnt(I - 1) - K).EntireRow.Delete xlUp K = K + 1 Next I Set R = Nothing Set WS1 = Nothing Set WS2 = Nothing End Sub и еще 2. Private Sub Main() Dim i As Long, j As Long, a(): Application.ScreenUpdating = False a = Sheets("в дороге").UsedRange.Value For i = 1 To UBound(a, 1) If a(i, 17) = "прибыл" Then j = Cells(Rows.Count, 17).End(xlUp).Row + 1 Range(Cells(j, 1), Cells(j, UBound(a, 2))).Value = Application.Index(a, i, 0) End If: Next End Sub Взято отсюда.http://programmersforum.ru/showthrea...9+%F4%E0%E9%EB |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенос/копирование макроса в другую книгу | Olper | Microsoft Office Excel | 7 | 21.12.2011 17:34 |
Изменение данных и перенос данных из одной таб в другую | Kot9ra | Microsoft Office Access | 13 | 02.07.2010 12:22 |
Перенос данных в другую книгу при нажатии кнопки | ElenaKorneva | Microsoft Office Excel | 7 | 12.04.2010 12:01 |
Выбор и перенос данных в другой лист, книгу. | Avald | Microsoft Office Excel | 1 | 16.06.2008 10:44 |
Перенос данных в из 1 таб. в другую... | ivp88 | БД в Delphi | 12 | 11.01.2008 15:45 |