Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/58: Рейтинг темы: голосов - 58, средняя оценка - 4.86
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285

Что возвращает свойство Column объекта Range

21.07.2012, 20:58. Показов 12188. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В справке написано:
Returns the number of the first column in the first area in the specified range.
Я так перевёл на русский: Возвращает номер первого столбца в первой области в определённом диапазоне.
В этом коде:
Visual Basic
1
2
3
4
5
Sub Procedure_1()
 
    Debug.Print Range("B1:C1").Columns(2).Column
 
End Sub
определённый диапазон Range("B1:C1").Columns(2), т.е. второй столбец в диапазоне B1:C1. Значит мы должны получить номер столбца относительно данного диапазона, а получаем номер столбца относительно листа. Получается, что в справке неправильно написано? Должно быть написано, что возвращается номер столбца активного листа?

Примечание: чтобы видеть работу кода: View - Immediate Window.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.07.2012, 20:58
Ответы с готовыми решениями:

Сообщение об ошибке, что невозможно установить свойство Width объекта Range, хотя все объекты существуют
При попытке программно присвоить значение ширины столбца ThisWorkbook.Sheets.Item(1).Columns(1).Width = 50 Выдается сообщение об...

При вызове объекта Range, VBA самостоятельно меняет Range на rAnge
Всем доброго дня, у меня такой вопрос. По незнанию создал функцию rAnge(), теперь при вызове обьекта Range, VBA самостоятельно меняет...

Диапазону ячеек B2:B20 присвоить имя "Стоимость", используя свойство Cells объекта Range
1) Диапазону ячеек B2:B20 присвоить имя "Стоимость", используя свойство Cells объекта Range. 2) Для диапазона А1:Н1 рабочего листа Лист1...

9
призрак
 Аватар для ikki
3265 / 893 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
21.07.2012, 21:07
а разве в справке написано что-то насчёт относительности нумерации?
покажите где?
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
21.07.2012, 21:23
Выражение Range("B1:C1").Columns(2) возвращает объект-диапазон. У диапазона есть свойство Column, которое не зависит от того, каким способом этот диапазон был получен.

Добавлено через 6 минут
Цитата Сообщение от Busine2012 Посмотреть сообщение
Я так перевёл на русский: Возвращает номер первого столбца в первой области в определённом диапазоне.
"в определённом диапазоне" относится к "первой области", а не к номеру столбца
1
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
22.07.2012, 08:25  [ТС]
Казанский, т.е. свойство Column всегда определяет номер столбца рабочего листа. Я думаю, что нужно было внести уточнение в Справку.

ikki,
Цитата Сообщение от ikki Посмотреть сообщение
а разве в справке написано что-то насчёт относительности нумерации?
вот я и думаю, что нужно уточнить в Справке - в отношении чего применяется Column.



Т.е. вот так должно быть в справке: Возвращает номер столбца рабочего листа, с которым пересекается первый столбец заданного диапазона.
0
призрак
 Аватар для ikki
3265 / 893 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
22.07.2012, 08:55
гм... "столбец пересекается с листом"? или "столбец пересекается со столбцом"?
конечно, сильно сказано.
но, имхо, это еще больше запутает народ.

на мой взгляд, уточнения не нужны - в конце концов, существует такое понятие: "по умолчанию". но если будут - то пусть.
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
22.07.2012, 09:09  [ТС]
Цитата Сообщение от ikki Посмотреть сообщение
"столбец пересекается с листом"? или "столбец пересекается со столбцом"?
да, задаваемый диапазон также состоит из строк и столбцов и представляет собой таблицу, только эта таблица не видима глазу, а хранится в оперативной памяти компьютера. В этом диапазоне также есть такая нумерация A1, B1, где A1 будет не ячейка рабочего листа, а ячейка заданного диапазона.
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
22.07.2012, 09:33
Хм, допустим, один и тот же диапазон получен разными способами. И что, свойство Column должно различаться?
Visual Basic
1
2
3
4
5
6
7
8
Sub bb()
Dim a As Range, b As Range, c As Range
Set a = Range("B1:C1").Columns(2)
Set b = Range("C1")
Set c = Intersect(Rows(1), Columns(3))
Debug.Print a.Address, b.Address, c.Address
Debug.Print a.Column, b.Column, c.Column
End Sub
А перевод я бы изменил так:

Возвращает номер первого столбца первой области определённого диапазона.
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
22.07.2012, 10:26  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
Возвращает номер первого столбца первой области определённого диапазона.
но возвращается номер не первого столбца определённого диапазона, а номер столбца рабочего листа. И номер первого столбца так и будет №1. А про область можно и не упоминать, т.к. столбцы в определённом диапазоне уникальны.


Казанский, про код в #7 пока не могу сказать, т.к. нужно отдохнуть от этой темы, а то уже всё перепуталось.
0
призрак
 Аватар для ikki
3265 / 893 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
22.07.2012, 10:32
"русский язык - это тако-ой русский язык!!!" (с)
(чего уж там про английский... )

сравниваем: "функция возвращает номер первого девятиэтажного дома", "функция возвращает номер второго дома после большого тополя", "функция возвращает номер лучшей школы нашего района", "функция возвращает номер столбца первой синей ячейки".

должно вернуть номер дома на улице, номер школы как таковой и номер столбца листа, не правда ли?
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
23.07.2012, 13:33  [ТС]
Казанский, да, в этом коде:
Visual Basic
1
2
3
4
5
6
7
8
Sub bb()
    Dim a As Range, b As Range, c As Range
    Set a = Range("B1:C1").Columns(2)
    Set b = Range("C1")
    Set c = Intersect(Rows(1), Columns(3))
    Debug.Print a.Address, b.Address, c.Address
    Debug.Print a.Column, b.Column, c.Column
End Sub
для диапазона a должен возвращаться номер столбца этого диапазона: Range("B1:C1"), а не номер столбца рабочего листа.
В двух других случаях под определённым диапазоном понимается рабочая книга, поэтому всё правильно.

Примечание:
чтобы увидеть работу кода: View - Immediate Window.


Цитата Сообщение от Busine2012 Посмотреть сообщение
А про область можно и не упоминать, т.к. столбцы в определённом диапазоне уникальны.
про это я ошибся: номера столбцов уникальны внутри области.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.07.2012, 13:33
Помогаю со студенческими работами здесь

Передать свойство объекта в свойство объекта в объекте что в массиве
var array = ; function func(a, b, c) { array = {}; array.a = {}; // вместо "a" - аргумент array.a.b = text3; // и здесь. } ...

Свойство объекта - что я делаю не так?
uses GraphABC, ABCObjects; var block: array of RectangleABC; begin // Не буду загромождать кодом - Здесь я заполняю массив block ...

Верно ли, что переменная - это свойство глобального объекта?
Я так понял что переменная это свойство глобального объекта,это так? Вопрос такой: Но так ведь любая переменная базового типа это...

свойство Column
Добрый день. По запросам заполняю таблицу грид разными данными из БД. Некоторые таблички имеют поля с датой, хотел сделать чтобы по нажатию...

ERROR 1264 (22003): Out of range value for column 'sales' at row 1
Здравствуйте, не могу понять где ошибка. Пишет что вышел за границы 'sales', но вроде все верно. Заранее спасибо. mysql>...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru