powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Скрипт копирования
16 сообщений из 16, страница 1 из 1
Скрипт копирования
    #36881812
эксель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каждый день копирую похожие данные: суть следующая.
Есть ряд ячеек в диапозоне, затем я копирую четко из диапозона ячейки ниже среза
вот файл, нужна помощь, чтобы прописать это через скрипт, в скриптах несилен =(((
...
Рейтинг: 0 / 0
Скрипт копирования
    #36882476
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub MyCopy()
StartR = 2 ' Строка начала диапазона
StartC = 3 ' Столбец начала диапазона
EndR = 16 ' Строка конца диапазона
EndC = 10 ' Столбец конца диапазона
StartWriteR = 19 ' Строка начала копирования
Range(Cells(StartWriteR, StartC), Cells(StartWriteR + EndR - StartR, EndC)).ClearContents
For j = StartC To EndC
WriteR = StartWriteR
For i = StartR To EndR
If Not IsEmpty(Cells(i, j)) Then
Cells(WriteR, j).Value = Cells(i, j).Value
WriteR = WriteR + 1
End If
Next
Next
End Sub
...
Рейтинг: 0 / 0
Скрипт копирования
    #36882580
эксель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

круто-круто
спасибо!!!

возник тока один вопрос, здесь мы четко пишем на строку номер такой, а если мало ли я добавлю строку сверху, тока табличка поедет, как реально этого избежать

супер, начну уже пользоваться
...
Рейтинг: 0 / 0
Скрипт копирования
    #36882750
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вам надо использовать именно такой вид (сверху - некая таблица, внизу - данные из неё без пропусков), можно задавать не ячейку окончания таблицы, а размер её, или вычислять размер, или использовать именованный диапазон...
...
Рейтинг: 0 / 0
Скрипт копирования
    #36882931
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
' Таблица - именованный диапазон "MyTable"
For Each nm In ActiveWorkbook.Names
    If nm.Name = "MyTable" Then Exit For
Next
aTable = nm.RefersToRange.Value
StartR = nm.RefersToRange.Row ' Строка начала диапазона
StartC = nm.RefersToRange.Column ' Столбец начала диапазона
StartWriteR =  2  + StartR + UBound(aTable,  1 ) ' Копируем ниже на 2 строки
Range(Cells(StartWriteR, StartC), Cells(StartWriteR + UBound(aTable,  1 ) -  1 , StartC + UBound(aTable,  2 ) -  1 )).ClearContents
For j =  1  To UBound(aTable,  2 )
    WriteR = StartWriteR
    For i =  1  To UBound(aTable,  1 )
        If Not IsEmpty(aTable(i, j)) Then
            Cells(WriteR, j + StartC -  1 ).Value = aTable(i, j)
            WriteR = WriteR +  1 
        End If
    Next
Next
...
Рейтинг: 0 / 0
Скрипт копирования
    #36884250
эксель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо огромное
...
Рейтинг: 0 / 0
Скрипт копирования
    #36884437
эксель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

а реально сделать так, что если скопировали за счет скрипта в поля ниже таблицы и там есть данные, чтобы он задавал вопрос, заменить или нет?
...
Рейтинг: 0 / 0
Скрипт копирования
    #36884743
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При наличии данных внизу - задавать должен вопрос по замене изменившихся или вообще если там есть данные? И вообще, там же переменное количество данных может быть, возникает неопределённость, какие ячейки проверять... тем более, что определиться надо до начала копирования.
...
Рейтинг: 0 / 0
Скрипт копирования
    #36885289
эксель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

например, задавать вопрос при смене, если значения отличаются, если нет, то сразу вставлять
...
Рейтинг: 0 / 0
Скрипт копирования
    #36885303
эксель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а также такой вопрос не данной обсуждаемой теме:
как припесать в скрипте поиск значения не в диапозоне в виде In Range("a1:a10")
а например в таблице с именем, как у Вас MyTable
...
Рейтинг: 0 / 0
Скрипт копирования
    #36885375
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эксельа также такой вопрос не данной обсуждаемой теме:
как припесать в скрипте поиск значения не в диапозоне в виде In Range("a1:a10")
а например в таблице с именем, как у Вас MyTable
Если вы сделали
Код: plaintext
1.
2.
For Each nm In ActiveWorkbook.Names
    If nm.Name = "MyTable" Then Exit For
Next
то объект nm у вас представляет именованный диапазон MyTable, nm.RefersToRange - сам объект-диапазон. Можете использовать .RefersTo и т.п. для получения реального диапазона. Почитайте хелп, там примеры достаточно понятные.
Например, заполним таблицу:
Код: plaintext
1.
2.
For Each c In nm.RefersToRange.Cells
    c.Value = Int((Rnd *  100 ) -  50 )
Next
...
Рейтинг: 0 / 0
Скрипт копирования
    #36885414
эксель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

понял, допер теперь

эксельAndreTM,
например, задавать вопрос при смене, если значения отличаются, если нет, то сразу вставлять
а с этим попомжете?
...
Рейтинг: 0 / 0
Скрипт копирования
    #36885460
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А смысл?
Суть всего макроса в том, что он однозначно преобразует исходную таблицу.
Если же вам, например, надо реагировать на изменение данных в исходном диапазоне, то проще реагировать на событие Change листа и вызывать метод для преобразования только одного столбца.
...
Рейтинг: 0 / 0
Скрипт копирования
    #36885466
эксель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок
спасибо за скрипт
...
Рейтинг: 0 / 0
Скрипт копирования
    #36886012
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эксель,

Вдогонку, примерно так можно реализовывать вообще (см.вложение)
...
Рейтинг: 0 / 0
Скрипт копирования
    #36886587
Thermik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно и так
http://icqrobot.ru/Archer/2010_09_29/page_0123.html
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Скрипт копирования
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]