Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по VBA Excel

1.8K
04 января 2005 года
ziv
71 / / 04.07.2003
Есть фиксированная область данных на листе 1, например range(A1:J300)
хочу сделать так:
1. нажимаю на любую ячейку области листа 1, например "B222"
2. вычисляю номер строки ячейки (=222)
3. снимаю данные со строки и копирую их на лист2, cells(1)
4. повторяю пункты 1-3 для других строк области (для Листа 2, ячейки меняются: 1,2,3 ... n)
5. прерываю процесс выбора данных нажитием какой-нибудь клавиши или левой кнопки мыши.

сейчас у меня набор данных по след.схеме:
1. -//-
2. вычисляю при помощи mid (адрес строки,нач.,длин.). Кстати - есть ли проще и надежнее способ?
3. копирую данные, вызывая подпрограмму, нажитием на кнопку ComandButton
4. -//-

В общем, хотелось бы, набирать данные методом "тыка" на нужные строки.

Если укажите направление поиска, то от меня большое спасибо не заржавеет, хе-хе :D
275
04 января 2005 года
pashulka
985 / / 19.09.2004
Вот посмотрите, может быть что-нибудь пригодится.
По поводу функции Mid ... Не проще использовать напрямую .Address ???
1.8K
04 января 2005 года
ziv
71 / / 04.07.2003
Цитата:
Originally posted by pashulka
Вот посмотрите, может быть что-нибудь пригодится.
По поводу функции Mid ... Не проще использовать напрямую .Address ???



Спасибо.
если использовать .Address, то я получаю строку формата $B$200. из этой строки мне нужно получить значение =200.
я поэтому и решил, что проще командой mid отрезать символы $B$ :)
вот насколько это неправильно?

275
04 января 2005 года
pashulka
985 / / 19.09.2004
Можно и проще :

iRow = ActiveCell.Row
iClm = ActiveCell.Column

примечание : ActiveCell - только в качестве примера.

P.S. Существует некоторая вероятность, что в Вашем коде можно обойтись и без определения номера строки.
263
04 января 2005 года
koltaviy
816 / / 16.12.2004
Цитата:
Originally posted by pashulka
Можно и проще :

iRow = ActiveCell.Row
iClm = ActiveCell.Column

примечание : ActiveCell - только в качестве примера.

P.S. Существует некоторая вероятность, что в Вашем коде можно обойтись и без определения номера строки.


А точнее:
iRow = ActiveCell.Rows.Row
iClm = ActiveCell.Columns.Column
Без определения строки не обойтись!!! Функции типа ActiveRow НЕТ!!!!!

275
04 января 2005 года
pashulka
985 / / 19.09.2004
Цитата : нажимаю на любую ячейку области листа 1, например "B222"

В этом случае, как раз и надо применить :

iRow = ActiveCell.Row
iClm = ActiveCell.Column

Но даже если Вы выделили всю строку, то :

iRow = ActiveCell.Row

всё равно будет работать !!! Хм.. странно, что Вы не проверили ...
1.8K
04 января 2005 года
ziv
71 / / 04.07.2003
Цитата:
Originally posted by pashulka
Цитата : нажимаю на любую ячейку области листа 1, например "B222"

В этом случае, как раз и надо применить :

iRow = ActiveCell.Row
iClm = ActiveCell.Column

Но даже если Вы выделили всю строку, то :

iRow = ActiveCell.Row

всё равно будет работать !!! Хм.. странно, что Вы не проверили ...



ДА!
Спасибо. я, дурень и не догадался :)
Причем, вот гляжу, в начальном своем коде я так и начал делять, а потом закоментировал строки и пошел гулять к "mid"у. :)
[off] Хирурги всю руку поискромсали - вот мозги и не варят [/off] :)))

275
05 января 2005 года
pashulka
985 / / 19.09.2004
Вот посмотрите ещё один пример, который по идее должен быть реализацией Вашей задачи.

Переносит строки из одного листа() в другой(), где они располагаются в виде возрастающего списка. Можно перенести сразу несколько строк. Макрос закончит свою работу если нажать кнопку Отмена.

P.S. Надеюсь, что по поводу хирургического вмешательства Вы пошутили.
1.8K
05 января 2005 года
ziv
71 / / 04.07.2003
Цитата:
Originally posted by pashulka
Вот посмотрите ещё один пример, который по идее должен быть реализацией Вашей задачи.

Переносит строки из одного листа() в другой(), где они располагаются в виде возрастающего списка. Можно перенести сразу несколько строк. Макрос закончит свою работу если нажать кнопку Отмена.

P.S. Надеюсь, что по поводу хирургического вмешательства Вы пошутили.



Спасибо. Достаточно интересная и нужная реализация - обязательно запомню.

а хирурги действительно были - вот так, с приятных болей в области правой кисти, начался новый 2005 год! гыы :lol:

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог