Модераторы: mihanik

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выдиление ячеек, как выделить диапазон ячеек с помщю xlUP 
:(
    Опции темы
Gannibal
Дата 21.5.2005, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



задача такова, у меня есть ексцел лист в нём например в 4 ячейках которые разбросаны по целому листу, можно было производить выдиление области между этими 4 записями или тремя как это реализовать с помощю xlUP

я вот пытаюсь проходить целый лист

Код

Dim rw, col As Integer

For rw = 1 To 2000
 For col = 1 To 2000

 Next col
Next rw


но как яа незнающий человек... хотелось бы знать как бы так можно было реализовать

Это сообщение отредактировал(а) M.E.G.U.S - 21.5.2005, 08:20


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
likhobory
Дата 21.5.2005, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



Попробуй сформулировать вопрос поконкретнее, что необходимо – выделить диапазон между 4-мя произвольно расположенными ячейками ??


--------------------
PM MAIL   Вверх
Gannibal
Дата 21.5.2005, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



Цитата(likhobory @ 21.5.2005, 10:32)
выделить диапазон между 4-мя произвольно расположенными ячейками ??


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

я вот уже дошёл до стадии когда узнаю адрес ячейки в которой уже записан текст

Код

For rw = 1 To 50
 For col = 1 To 50
    If Cells(rw, col).Text <> "" Then
        MsgBox Cells(rw, col).Address
    End If
 Next col
 Next rw


Это сообщение отредактировал(а) M.E.G.U.S - 21.5.2005, 11:43


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Gannibal
Дата 21.5.2005, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



вот уже дошёл до стадии когда выделяю диапазон между двумя ячейками

Код

Private Sub CommandButton1_Click()
Dim rw, col As Integer
Dim a()
Dim i As Integer

For rw = 1 To 50
 For col = 1 To 50
    If Cells(rw, col).Text <> "" Then
      ReDim Preserve a(i)
      a(i) = Cells(rw, col).Address
      i = i + 1
    End If
Next col
Next rw
 
Range(a(0) & " : " & a(1)).Select
End Sub


но ето я делаю программно а то говорят что можно с помощхю xlUP функции чтоли или как то так... вот мне с помощью неё и надо

Это сообщение отредактировал(а) M.E.G.U.S - 22.5.2005, 02:41


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
likhobory
Дата 21.5.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



Цитата(M @ 21.5.2005, 11:39)
даже если будут три ячейки росположены произвольно .. то будет выделятся область между этими ячейками

все же - что имеешь в виду: ячейки должны быть "углами" некой прямоугольной области ??
Если объяснение проблематично - прикрепи к тексту вопроса файл с примером - быстрее найдем общий язык smile
Цитата(M @ 21.5.2005, 11:50)
можно с помощхю xlUP функции

поправочка: xlUP - константа, другое дело, где ее применять - пока затрудняюсь ответить, т.к. сам вопрос до конца не ясен smile



--------------------
PM MAIL   Вверх
Gannibal
Дата 21.5.2005, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



короче постораюсь поподробнее.. есть у нас лист
- пользовател в тот лист либовольно задаёт в ячейки какой нибудь текст всёравно что ну например по листу разброссано в ячейке А1="привет" В10="вот так" Е5="что то"
- заполненые ячейки служат как границы как ты написал выше
- надо выделить диапазон(область) ячеек внутри этих границ

-------------

написаны границы в ячейках выделение должно произойти в диапазоне С16 : Е25

Это сообщение отредактировал(а) M.E.G.U.S - 21.5.2005, 17:03

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  sesit.zip


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
likhobory
Дата 21.5.2005, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



попробуй так
Код

ActiveSheet.UsedRange.Select



--------------------
PM MAIL   Вверх
Gannibal
Дата 21.5.2005, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



Цитата(likhobory @ 21.5.2005, 16:02)
ActiveSheet.UsedRange.Select


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



--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
likhobory
Дата 21.5.2005, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



тогда почему в примере заполнена ячейка B10 ??
в листе (кроме введенных 3-4 значений) подразумевается наличие и других значений ??



--------------------
PM MAIL   Вверх
Gannibal
Дата 21.5.2005, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



Цитата(likhobory @ 21.5.2005, 16:20)
тогда почему в примере заполнена ячейка B10 ??


она определяет левую границу выделения


Цитата(likhobory @ 21.5.2005, 16:20)
в листе (кроме введенных 3-4 значений) подразумевается наличие и других значений ??


ну их может быть записаных и три и 4 и пять значений.. например.. и эти значения определяют границы выделения мне так было сказано в школе..
мне самому в голову неидёт... как это сделать
Добавлено @ 17:24
ну 5 значений неможет быть то значение пятое небудет участвовать границы та всёже 4 только


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
likhobory
Дата 21.5.2005, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



тем не менее можно начать с выделения именно рабочей области, а потом её же и "доводить до ума"
Код

ActiveSheet.UsedRange.Select
'обработка правой и нижней границ
Selection.Resize(numRowsSelection.Rows.Count - 1, Selection.Columns.Count - 1).Select
'.........................



--------------------
PM MAIL   Вверх
Gannibal
Дата 21.5.2005, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



Цитата(likhobory @ 21.5.2005, 17:47)
Selection.Resize(numRowsSelection.Rows.Count - 1, Selection.Columns.Count - 1).Select


в этой строчке ошибку кидает типо object required run=time error 424

Добавлено @ 18:57
можешь поподробнее .. немножко а то я вба приказы вообще незнаю

Это сообщение отредактировал(а) M.E.G.U.S - 21.5.2005, 18:58


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Gannibal
Дата 21.5.2005, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



Цитата(M @ 21.5.2005, 17:56)
Selection.Resize(numRowsSelection.Rows.Count - 1, Selection.Columns.Count - 1).Select


уже с этом розобрался как работает smile буду пробовать спасибо пока если есть ещё идеи скажи smile

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

Цитата(likhobory @ 21.5.2005, 17:47)
Selection.Resize(numRowsSelection.Rows.Count - 1, Selection.Columns.Count - 1).Select


и кстати у тебя ошибка в этой строчке она должна выглядит вот так

Код

Selection.Resize(Selection.Rows.Count - 1, Selection.Columns.Count - 1).Select


Это сообщение отредактировал(а) M.E.G.U.S - 21.5.2005, 19:25


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
likhobory
Дата 21.5.2005, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



угу, очепятка


Это сообщение отредактировал(а) likhobory - 21.5.2005, 19:39


--------------------
PM MAIL   Вверх
Gannibal
Дата 21.5.2005, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



ну вот например я узнал адреса всех ячеек в которых записан текст но блин как всё сделать незнаю smile


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Staruha
Дата 22.5.2005, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Благодаря Вашим рассуждениям у меня получилось
Код

 Private Sub CommandButton1_Click()
Dim dRange As Range 'äèàïàçîí
Dim dr As Integer
Dim dc As Integer
Dim c As Integer
Dim r As Integer
 
ActiveSheet.UsedRange.Select
  Set dRange = Selection
  r = dRange.Range("A1").Row + 1 'Ñòðîêà ïåðâîé ÿ÷åéêè âíóòðè äèàïàçîíà
  c = dRange.Range("A1").Column + 1
     dc = dRange.Columns.Count - 2 - 1
     dr = dRange.Rows.Count - 2 - 1
  Range(Cells(r, c), Cells(r + dr, c + dc)).Select
End Sub


Это сообщение отредактировал(а) Staruha - 22.5.2005, 10:57

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  __.rar


--------------------
Возмездие настигнет
PM MAIL   Вверх
Gannibal
Дата 22.5.2005, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



замечятельный код .. огромное сапсибо smile токо вото н ещё некоректно работает ну как так как надо ... но неполностью ещё надо подпровлять будет smile а так огромное спасибо.. smile


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Staruha
Дата 22.5.2005, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



smile Не забудь показать финальную версию smile

Это сообщение отредактировал(а) Staruha - 22.5.2005, 19:30


--------------------
Возмездие настигнет
PM MAIL   Вверх
Gannibal
Дата 22.5.2005, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



это обязательно smile


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Staruha
Дата 22.5.2005, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Посмотрела насчет корректности .Ну да есть.
Вот здесь поправила
Код

  r = dRange.Range("B2").Row 'вторая ячейка в диапазоне
 c = dRange.Range("B2").Column
dc = dRange.Columns.Count - 3
dr = dRange.Rows.Count - 3



--------------------
Возмездие настигнет
PM MAIL   Вверх
Ochkaric
Дата 17.7.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 17.7.2007

Репутация: нет
Всего: нет



Добрый день (вечер или ночь)!
Помогите решить проблему: надо заставить работать индикатор текущего состояния (с помощью UserForm). В книге Джона Уокенбаха рассматривается частный пример, который не годится.
У меня макрос долго работает, выполняя как перенос данных так и их анализ. Есть ли другие примеры
на эту тему ?
PM MAIL   Вверх
bilya
Дата 18.7.2007, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 3.1.2007

Репутация: 1
Всего: 1



Может - ну его, Джона Уокенбаха, к соседям постучим? http://forum.developing.ru/showthread.php?t=10446
  smile 
PM MAIL   Вверх
mihanik
Дата 19.7.2007, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Ochkaric!!!
Модератор: Пожалуйста, один топик - один вопрос.


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0705 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.