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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2010, 11:49   #1
sn00p
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 40
По умолчанию работа с массивом. перенос с таблицы

всем хеллоу!
подскажите, дайте линк или кода немного
нужно впихнуть всю строку в массив разом, со всеми столбцами, как сделать это?
у меня массив Dim DataArray(1 To nLastrow, 1 To nLastCol) As Variant и таблица с 10ю столбцами и соответсвтенно мне нужно к ним образаться по тем же адресам в массиве, что они на листе находятся
sn00p вне форума Ответить с цитированием
Старый 30.09.2010, 12:02   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

если все физически лежит на листе то:
Rows("XX:YY").Copy
Rows("ZZ").Insert Shift:=xlDown
где
XX - начальный номер строки из тех, что хотим вставить
YY - конечный номер строки из тех, что хотим вставить
ZZ - номер строки, перед которой надо все вствить (эта строка сместится вниз)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.09.2010, 12:09   #3
sn00p
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 40
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
если все физически лежит на листе то:
Rows("XX:YY").Copy
Rows("ZZ").Insert Shift:=xlDown
где
XX - начальный номер строки из тех, что хотим вставить
YY - конечный номер строки из тех, что хотим вставить
ZZ - номер строки, перед которой надо все вствить (эта строка сместится вниз)
а для чего делать смещение?
если у меня будет цикл и я хочу вставить строку с ее порядковым номером этого делать ведь необязательно?
допустим, хочу , что бы у меня 10я строка вставлялась как10..
Rows("XX:YY").Copy
Rows("ZZ").Insert
так не пойдет?
sn00p вне форума Ответить с цитированием
Старый 30.09.2010, 12:31   #4
sn00p
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 40
По умолчанию

может у вас ошибка в коде?
rowitem = Rows("A1:J" + Trim(Str(nLastCol))).Copy
выдает ошибку
модет надо?
rowitem = range("A1:J" + Trim(Str(nLastCol))).Copy
sn00p вне форума Ответить с цитированием
Старый 30.09.2010, 12:46   #5
sn00p
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 40
По умолчанию

вот такой код выдаёт ошибку
Range("A1:J" + Trim(Str(nLastrow))).Copy

DataArray(1).Insert
sn00p вне форума Ответить с цитированием
Старый 30.09.2010, 13:02   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

так не пойдет.
если хотите сохранить порядковые номера строк, то нужно выделить служебный столбец, в котором они будут храниться, обращение и поиск производить не по номеру в массиве, а по значению в служебном столбце.
Но Вы что-то усложняете, нарветесь на ситуацию, когда в служебном столбце будут две строки с одинаковыми номерами и как Вы их потом различите между собой.
Что-то намудрено здесь. Или я все неправильно понял, не осознал глубины глубин...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.09.2010, 13:11   #7
sn00p
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 40
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
так не пойдет.
если хотите сохранить порядковые номера строк, то нужно выделить служебный столбец, в котором они будут храниться, обращение и поиск производить не по номеру в массиве, а по значению в служебном столбце.
Но Вы что-то усложняете, нарветесь на ситуацию, когда в служебном столбце будут две строки с одинаковыми номерами и как Вы их потом различите между собой.
Что-то намудрено здесь. Или я все неправильно понял, не осознал глубины глубин...
да мне просто нужно выделить все данные на листе, запихать их в массив в том же порядке и обращаться к ним по определенным адресам, не нужен мне служебный столбец. а после обработки выполнить обратную операцию - выделить содержимое массива и вставить его на лист
sn00p вне форума Ответить с цитированием
Старый 30.09.2010, 13:13   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Sub tt()
Dim a
a = [a1:b10]
MsgBox a(1, 1)
MsgBox a(10, 2)
[d1:e10] = a
End Sub

Содержимое массива смотрите в окне Locals.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 30.09.2010 в 13:18. Причина: Содержимое массива смотрите в окне Locals.
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос данных из таблицы в таблицу Kisma БД в Delphi 7 22.10.2010 12:09
перенос данных из одной таблицы в другую peq Microsoft Office Excel 5 28.08.2010 08:16
Перенос данных из одной таблицы в другую в Excel Vindima Помощь студентам 2 11.04.2010 19:54
авт. перенос данных из нескольких столбцов одной таблицы в один столбец другой таблицы A_ALL Microsoft Office Access 7 24.08.2009 21:13
перенос данных из таблицы 1 в таблицу 2 AndreyZeus Microsoft Office Excel 1 20.03.2009 16:02