powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel-2007 - нужна помощь с VBA командами
19 сообщений из 19, страница 1 из 1
Excel-2007 - нужна помощь с VBA командами
    #38076798
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!
Коллеги, не судите строго, я в VBA новичёк, хотя его возможности меня и впечатляют))

Мне надо данные (цифры) сравнить в одной области (Range) и совпадения подкрасить во второй , тем же цветом заднего фона, что и в первой. Сравнение хитрое, построчное.
А посему два вопроса:

1) Как мне узнать координаты, выделенной области (Range с ячейками) - номер начального столбца, количество столбцов и количество строчек. ХОТЯ БЫ КОЛИЧЕСТВО ВЫДЕЛЕННЫХ СТРОК и НОМЕР ПЕРВОЙ ВЫДЕЛЕННОЙ СТРОКИ.
2) Как мне считать цвет заднего фона ячейки (юзер может проставить любой цвет фона) и потом этот же цвет проставить другой ячейке (в другой области).

Если тухловато объяснил, спрашивайте и критикуйте. Циклы я писать научился, условия осилил. Даже научился команду выполнять по клавише определенной клавы.

Но вот верхние 2-ва вопроса - у меня вызывают уныние. Help me please!
Это знакомый попросил, денег на этом я не поимею совсем...
Зараннее a lot of thanks!
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38076837
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Range.Address
2) Range.Interior.BackColor
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38076862
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoedвыделенной области ... - номер начального столбца, количество столбцов и количество строчек .... НОМЕР ПЕРВОЙ ВЫДЕЛЕННОЙ СТРОКИ
Код: vbnet
1.
2.
3.
4.
Selection.Column
Selection.Columns.Count
Selection.Rows.Count
Selection.Row
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077300
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Усё получилось, спасибо.
Теперь пробую вызвать функцию из другой функции , работает с Integer типом. Для примера:

-- вложенная функция
Код: vbnet
1.
2.
3.
Sub get_range_address(coun_row As Integer)
coun_row = Selection.Rows.Count
End Sub



Внешняя функция (сам вызов):

Код: vbnet
1.
2.
3.
Sub circl()
Dim coun_row_n  
coun_row_n = get_range_address(coun_row_n)



И выдается ругачка: Expected function or variable . Что я делаю не так как правильно, спасиб!
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077345
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял, что надо функцию Function использовать, но почему то после её вызова всё равно значение обнуляется!
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077349
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На какой строке выдается? на первый взгляд все правильно
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077356
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, да, я тормоз

Код: vbnet
1.
2.
3.
Function get_range_address() As Integer
get_range_address = Selection.Rows.Count
End Sub
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077358
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
Sub circl()
Dim coun_row_n  
coun_row_n = get_range_address()
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077368
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Shocker.Pro,

Вот так описываю функцию
Код: vbnet
1.
2.
3.
Function get_range_address(coun_row As Integer) As Integer
coun_row = Selection.Rows.Count
End Function



Вот так вызываю
:
Код: vbnet
1.
2.
3.
4.
5.
6.
Sub circl()
Dim coun_row  As Integer

coun_row_n = 0
coun_row_n = get_range_address(coun_row_n)
MsgBox coun_row



Выдает по любому 0, хотя дебаг показывает, что в функцию заходим и переменной присваивается 1.
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077401
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoed,

Есть два варианта возвращать значение из функции, один я показал выше - через имя функции, есть другой вариант - через переменные, (его используют, если требуется вернуть несколько значений, но в данном случае он не нужен):

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub get_range_address(ByRef coun_row As Integer)
coun_row = Selection.Rows.Count
End Sub


Sub circl()
Dim coun_row_n  
get_range_address coun_row_n
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077402
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoed Вот так описываю функцию

13624620
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077404
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще, наверное лучше начать с чтения учебника, это все-таки основы синтаксиса языка
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077431
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Promedoed,

Есть два варианта возвращать значение из функции, один я показал выше - через имя функции, есть другой вариант - через переменные, (его используют, если требуется вернуть несколько значений, но в данном случае он не нужен):

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub get_range_address(ByRef coun_row As Integer)
coun_row = Selection.Rows.Count
End Sub


Sub circl()
Dim coun_row_n  
get_range_address coun_row_n



То что доктор прописал, всё получилось - пасиб))

Я ещё про массивы хотел спросить, но в силу Вашего последнего высказывания, попробую сам разобраться))
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077493
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoedТо что доктор прописал, всё получилось - пасиб))нет, доктор как раз прописал 13624620 13624630 , а второй вариант нужен в случае сложных функций, возвращающих несколько значений, не надо использовать его для простых, это некрасиво и в некоторых случаях неудобно.
medoedЯ ещё про массивы хотел спросить, но в силу Вашего последнего высказывания, попробую сам разобраться))спрашивай, если не разберешься с учебником
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077509
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.PromedoedТо что доктор прописал, всё получилось - пасиб))нет, доктор как раз прописал 13624620 13624630 , а второй вариант нужен в случае сложных функций, возвращающих несколько значений, не надо использовать его для простых, это некрасиво и в некоторых случаях неудобно.
medoedЯ ещё про массивы хотел спросить, но в силу Вашего последнего высказывания, попробую сам разобраться))спрашивай, если не разберешься с учебником

1. В моём варианте как раз нужно вернуть несколько значений (координаты выделенной области) - поэтому и говорю - то что надо
2. С массивами я посмотрел как работать, правильно я понимаю, что для динамических массивов нужно выполнять команду ReDim при их изменении или дополнении?
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077524
Khod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoedМне надо данные (цифры) сравнить в одной области (Range) и совпадения подкрасить во второй , тем же цветом заднего фона, что и в первой. Сравнение хитрое, построчное.

В одной области цифры не повторяются с разными фонами?
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077577
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoedправильно я понимаю, что для динамических массивов нужно выполнять команду ReDim при их изменении или дополнении?ReDim Preserve
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077587
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KhodmedoedМне надо данные (цифры) сравнить в одной области (Range) и совпадения подкрасить во второй , тем же цветом заднего фона, что и в первой. Сравнение хитрое, построчное.

В одной области цифры не повторяются с разными фонами?

Не должны!

>> Shocker.Pro

Спасиб, это не очень удобно!
...
Рейтинг: 0 / 0
Excel-2007 - нужна помощь с VBA командами
    #38077592
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoedэто не очень удобно!используй коллекции
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel-2007 - нужна помощь с VBA командами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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